PolyakovK commited on
Commit
5691645
·
verified ·
1 Parent(s): 88b964b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -14
app.py CHANGED
@@ -1,29 +1,28 @@
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()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM, TextGenerationPipeline
3
 
4
+ model_id = "HuggingFaceH4/zephyr-7b-beta"
5
  tokenizer = AutoTokenizer.from_pretrained(model_id)
6
+ model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype="auto")
7
 
8
+ pipe = TextGenerationPipeline(model=model, tokenizer=tokenizer, max_new_tokens=64, do_sample=True, temperature=0.2)
9
 
10
  def classify_email(text):
11
+ prompt = f"""Ты классификатор писем. Прочитай письмо и верни только одну цифру без пояснений.
 
 
 
 
12
 
13
+ Схема классификации:
14
+ 1 — человек хочет встретиться (предлагает даты или спрашивает когда удобно)
15
+ 2 — человек отказывается, говорит "не интересно", "спасибо, не нужно"
16
+ 3 — человек задаёт уточняющие вопросы, но не даёт согласия или отказа
17
 
18
  Письмо:
19
  {text}
20
+
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
+ gr.Interface(fn=classify_email, inputs="text", outputs="text", title="Классификация писем").launch()