Spaces:
Sleeping
Sleeping
File size: 1,458 Bytes
b4e675c 3d07812 b4e675c 64f605f b4e675c 3d07812 b4e675c 64f605f b4e675c 64f605f b4e675c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
from transformers import pipeline
from flask import Flask, request, jsonify
app = Flask(__name__)
# Загружаем zero-shot классификатор
classifier = pipeline("zero-shot-classification", model="typeform/distilbert-base-uncased-mnli")
# Гипотезы
LABELS = {
"wants_meeting": "Клиент хочет назначить встречу или обсудить время",
"not_interested": "Клиент не заинтересован во встрече или у него нет времени",
"asking_questions": "Клиент задает уточняющие вопросы по теме"
}
@app.route("/analyze", methods=["POST"])
def analyze():
data = request.get_json()
emails = data.get("emails", [])
if not emails or not isinstance(emails, list):
return jsonify({"error": "Field 'emails' must be a non-empty list"}), 400
results = []
for email in emails:
prediction = classifier(email, list(LABELS.values()), multi_label=True)
scored_labels = dict(zip(prediction["labels"], prediction["scores"]))
# Вывод в формате {label: score}
result = {
"text": email,
"intents": {
key: round(scored_labels[label], 4) for key, label in LABELS.items()
}
}
results.append(result)
return jsonify(results)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)
|