SimrusDenuvo commited on
Commit
ef90d3b
·
verified ·
1 Parent(s): 2a186cd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -26
app.py CHANGED
@@ -2,38 +2,38 @@ import gradio as gr
2
  import time
3
  from transformers import pipeline
4
 
5
- # Настройка моделей
6
  models = {
7
- "ChatGPT-like (FRED-T5)": pipeline("text2text-generation", model="ai-forever/FRED-T5-1.7B", tokenizer="ai-forever/FRED-T5-1.7B", device=-1),
8
- "DeepSeek-like (Qwen7B)": pipeline("text-generation", model="lightblue/DeepSeek-R1-Distill-Qwen-7B-Multilingual", tokenizer="lightblue/DeepSeek-R1-Distill-Qwen-7B-Multilingual", device=-1),
9
- "GigaChat-like (GigaChat-20B)": pipeline("text-generation", model="ai-sage/GigaChat-20B-A3B-instruct", tokenizer="ai-sage/GigaChat-20B-A3B-instruct", device=-1)
10
  }
11
 
12
  # Промпты
13
- cot_instruction = """Ты — банковский специалист. Клиент задал вопрос.
14
- Проанализируй обращение пошагово:
15
- 1. В чём проблема?
16
- 2. Возможные причины?
17
- 3. Как решить?
18
- Вывод: категория обращения."""
19
 
20
- simple_instruction = "Ты — банковский специалист. Определи категорию обращения клиента кратко."
21
 
22
- # Генерация промптов
23
 
24
  def build_prompt(instruction, user_input):
25
  return f"{instruction}\n\nКлиент: {user_input}"
26
 
27
- # Обработка ответа
28
 
29
- def get_output(pipe, prompt, max_tokens=300):
30
  try:
31
  output = pipe(prompt, max_new_tokens=max_tokens, truncation=True, do_sample=True, temperature=0.7)[0]
32
  return output.get("generated_text") or output.get("output_text") or "(нет ответа)"
33
  except Exception as e:
34
  return f"Ошибка: {e}"
35
 
36
- # Основная функция
37
 
38
  def generate_comparison(user_input):
39
  result = {}
@@ -59,37 +59,37 @@ def generate_comparison(user_input):
59
  }
60
 
61
  return (
62
- result["ChatGPT-like (FRED-T5)"]["cot_answer"], result["ChatGPT-like (FRED-T5)"]["cot_time"],
63
- result["ChatGPT-like (FRED-T5)"]["simple_answer"], result["ChatGPT-like (FRED-T5)"]["simple_time"],
64
- result["DeepSeek-like (Qwen7B)"]["cot_answer"], result["DeepSeek-like (Qwen7B)"]["cot_time"],
65
- result["DeepSeek-like (Qwen7B)"]["simple_answer"], result["DeepSeek-like (Qwen7B)"]["simple_time"],
66
- result["GigaChat-like (GigaChat-20B)"]["cot_answer"], result["GigaChat-like (GigaChat-20B)"]["cot_time"],
67
- result["GigaChat-like (GigaChat-20B)"]["simple_answer"], result["GigaChat-like (GigaChat-20B)"]["simple_time"]
68
  )
69
 
70
  # Интерфейс
71
  with gr.Blocks() as demo:
72
- gr.Markdown("## Сравнение моделей: ChatGPT, DeepSeek, GigaChat (банковская классификация)")
73
 
74
- inp = gr.Textbox(label="Вопрос клиента", placeholder="Например: Я не могу оплатить картой", lines=2)
75
  btn = gr.Button("Сгенерировать")
76
 
77
  # ChatGPT-like
78
- gr.Markdown("### ChatGPT-like (FRED-T5)")
79
  cot1 = gr.Textbox(label="CoT ответ")
80
  cot1_time = gr.Textbox(label="Время CoT")
81
  simple1 = gr.Textbox(label="Обычный ответ")
82
  simple1_time = gr.Textbox(label="Время обычного")
83
 
84
  # DeepSeek-like
85
- gr.Markdown("### DeepSeek-like (Qwen7B)")
86
  cot2 = gr.Textbox(label="CoT ответ")
87
  cot2_time = gr.Textbox(label="Время CoT")
88
  simple2 = gr.Textbox(label="Обычный ответ")
89
  simple2_time = gr.Textbox(label="Время обычного")
90
 
91
  # GigaChat-like
92
- gr.Markdown("### GigaChat-like (GigaChat-20B)")
93
  cot3 = gr.Textbox(label="CoT ответ")
94
  cot3_time = gr.Textbox(label="Время CoT")
95
  simple3 = gr.Textbox(label="Обычный ответ")
 
2
  import time
3
  from transformers import pipeline
4
 
5
+ # Настройка моделей (лёгкие и совместимые с Hugging Face Spaces)
6
  models = {
7
+ "ChatGPT-like (Falcon)": pipeline("text-generation", model="tiiuae/falcon-7b-instruct", tokenizer="tiiuae/falcon-7b-instruct", device=-1),
8
+ "DeepSeek-like": pipeline("text-generation", model="deepseek-ai/deepseek-coder-6.7b-instruct", tokenizer="deepseek-ai/deepseek-coder-6.7b-instruct", device=-1),
9
+ "GigaChat-like (Mistral)": pipeline("text-generation", model="mistralai/Mistral-7B-Instruct", tokenizer="mistralai/Mistral-7B-Instruct", device=-1)
10
  }
11
 
12
  # Промпты
13
+ cot_instruction = """Ты — банковский помощник. Клиент описал проблему.
14
+ Проанализируй обращение шаг за шагом:
15
+ 1. Что случилось?
16
+ 2. Почему это могло произойти?
17
+ 3. Как клиенту поступить?
18
+ Вывод: укажи категорию обращения (например: доступ, безопасность, платежи, перевод и т.д.)"""
19
 
20
+ simple_instruction = "Ты — банковский помощник. Определи кратко, к какой категории относится обращение клиента (например: доступ, платежи, безопасность и т.д.)."
21
 
22
+ # Формирование промптов
23
 
24
  def build_prompt(instruction, user_input):
25
  return f"{instruction}\n\nКлиент: {user_input}"
26
 
27
+ # Генерация вывода с защитой
28
 
29
+ def get_output(pipe, prompt, max_tokens=200):
30
  try:
31
  output = pipe(prompt, max_new_tokens=max_tokens, truncation=True, do_sample=True, temperature=0.7)[0]
32
  return output.get("generated_text") or output.get("output_text") or "(нет ответа)"
33
  except Exception as e:
34
  return f"Ошибка: {e}"
35
 
36
+ # Основная функция сравнения
37
 
38
  def generate_comparison(user_input):
39
  result = {}
 
59
  }
60
 
61
  return (
62
+ result["ChatGPT-like (Falcon)"]["cot_answer"], result["ChatGPT-like (Falcon)"]["cot_time"],
63
+ result["ChatGPT-like (Falcon)"]["simple_answer"], result["ChatGPT-like (Falcon)"]["simple_time"],
64
+ result["DeepSeek-like"]["cot_answer"], result["DeepSeek-like"]["cot_time"],
65
+ result["DeepSeek-like"]["simple_answer"], result["DeepSeek-like"]["simple_time"],
66
+ result["GigaChat-like (Mistral)"]["cot_answer"], result["GigaChat-like (Mistral)"]["cot_time"],
67
+ result["GigaChat-like (Mistral)"]["simple_answer"], result["GigaChat-like (Mistral)"]["simple_time"]
68
  )
69
 
70
  # Интерфейс
71
  with gr.Blocks() as demo:
72
+ gr.Markdown("## Сравнение моделей: Falcon, DeepSeek, Mistral (Классификация обращений в банке)")
73
 
74
+ inp = gr.Textbox(label="Вопрос клиента", placeholder="Например: Я не могу войти в личный кабинет", lines=2)
75
  btn = gr.Button("Сгенерировать")
76
 
77
  # ChatGPT-like
78
+ gr.Markdown("### ChatGPT-like (Falcon)")
79
  cot1 = gr.Textbox(label="CoT ответ")
80
  cot1_time = gr.Textbox(label="Время CoT")
81
  simple1 = gr.Textbox(label="Обычный ответ")
82
  simple1_time = gr.Textbox(label="Время обычного")
83
 
84
  # DeepSeek-like
85
+ gr.Markdown("### DeepSeek-like")
86
  cot2 = gr.Textbox(label="CoT ответ")
87
  cot2_time = gr.Textbox(label="Время CoT")
88
  simple2 = gr.Textbox(label="Обычный ответ")
89
  simple2_time = gr.Textbox(label="Время обычного")
90
 
91
  # GigaChat-like
92
+ gr.Markdown("### GigaChat-like (Mistral)")
93
  cot3 = gr.Textbox(label="CoT ответ")
94
  cot3_time = gr.Textbox(label="Время CoT")
95
  simple3 = gr.Textbox(label="Обычный ответ")