PolyakovK's picture
Update app.py
b4e675c verified
raw
history blame
1.46 kB
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)