Spaces:
Sleeping
Sleeping
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": "Клиент задает уточняющие вопросы по теме" | |
} | |
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) | |