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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -22
app.py CHANGED
@@ -1,28 +1,22 @@
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()
 
1
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
2
+ import torch
3
 
4
+ # Загрузка модели и токенизатора
5
+ model_id = "beyond/roberta-base-email-intent-classifier"
6
  tokenizer = AutoTokenizer.from_pretrained(model_id)
7
+ model = AutoModelForSequenceClassification.from_pretrained(model_id)
8
 
9
+ # pipeline с device="cpu" (или "cuda:0" если есть GPU)
10
+ classifier = pipeline("text-classification", model=model, tokenizer=tokenizer, device=0 if torch.cuda.is_available() else -1)
11
 
12
+ # Пример: классификация писем
13
+ emails = [
14
+ "Спасибо за ваше письмо. Давайте созвонимся в пятницу.",
15
+ "К сожалению, мы не готовы сотрудничать в этом направлении.",
16
+ "А подскажите, пожалуйста, как вы работаете с B2B и есть ли у вас кейсы в финансовой сфере?"
17
+ ]
18
 
19
+ results = classifier(emails)
 
 
 
20
 
21
+ for email, res in zip(emails, results):
22
+ print(f"Email: {email}\n→ Predicted intent: {res['label']} (confidence: {res['score']:.2f})\n")