PolyakovK commited on
Commit
64f605f
·
verified ·
1 Parent(s): 7b6b7c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -14
app.py CHANGED
@@ -1,20 +1,29 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
 
4
- classifier = pipeline("zero-shot-classification", model="typeform/distilbert-base-uncased-mnli")
 
 
 
 
5
 
6
  def classify_email(text):
7
- labels = ["клиент готов встретиться или хочется назначить время для звонка или встречи", "клиент отказывается от встречи, ему сейчас не интересно то, что мы предлагаем или у него нет времени", "клиент задает любые уточняющие вопросы и ему нужна помощь"]
8
- result = classifier(text, candidate_labels=labels)
9
- label = result["labels"][0]
10
- if label == "клиент готов встретиться или хочется назначить время для звонка или встречи":
11
- return "1"
12
- elif label == "клиент отказывается от встречи, ему сейчас не интересно то, что мы предлагаем или у него нет времени":
13
- return "2"
14
- elif label == "клиент задает любые уточняющие вопросы и ему нужна помощь":
15
- return "3"
16
- else:
17
- return "?"
 
 
 
 
 
18
 
19
- iface = gr.Interface(fn=classify_email, inputs="text", outputs="text", title="Email Classifier")
20
  iface.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
3
 
4
+ model_id = "mistralai/Mistral-7B-Instruct-v0.2"
5
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
6
+ model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
7
+
8
+ pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=20)
9
 
10
  def classify_email(text):
11
+ prompt = f"""
12
+ Прочитай текст письма и классифицируй его по следующей схеме:
13
+ 1 человек хочет встретиться (например, предлагает даты или спрашивает когда удобно)
14
+ 2 человек отказывается, говорит "не интересно", "спасибо, не нужно"
15
+ 3 — человек задаёт уточняющие вопросы, но не даёт прямого согласия или отказа
16
+
17
+ Ответь **только числом**: 1, 2 или 3.
18
+
19
+ Письмо:
20
+ {text}
21
+ """
22
+ result = pipe(prompt)[0]['generated_text']
23
+ for token in ["1", "2", "3"]:
24
+ if token in result:
25
+ return token
26
+ return "?"
27
 
28
+ iface = gr.Interface(fn=classify_email, inputs="text", outputs="text", title="Классификация писем")
29
  iface.launch()