SimrusDenuvo commited on
Commit
81433b0
·
verified ·
1 Parent(s): 37f0934

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -26
app.py CHANGED
@@ -1,32 +1,32 @@
1
  import gradio as gr
2
- from transformers import pipeline, AutoTokenizer
 
3
 
4
- # 1. Используем стабильную публичную модель
5
- MODEL_NAME = "sberbank-ai/rugpt3small" # Русскоязычная модель от Сбера
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- # 2. Загрузка модели с обработкой ошибок
8
  try:
9
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
10
  model = pipeline(
11
  "text-generation",
12
- model=MODEL_NAME,
13
- tokenizer=tokenizer,
14
- device="cpu",
15
- torch_dtype="auto"
16
  )
17
  except Exception as e:
18
  raise RuntimeError(f"Ошибка загрузки модели: {str(e)}")
19
 
20
- # 3. Примеры обращений (без датасета)
21
- examples = [
22
- "Где мой заказ #12345?",
23
- "Как вернуть товар?",
24
- "Не приходит SMS-код подтверждения",
25
- "Ошибка при оплате картой",
26
- "Как изменить адрес доставки?"
27
- ]
28
-
29
- # 4. Генерация ответа
30
  def generate_response(message):
31
  prompt = f"""Ты оператор поддержки. Ответь клиенту вежливо.
32
 
@@ -44,20 +44,20 @@ def generate_response(message):
44
  except Exception as e:
45
  return f"Ошибка: {str(e)}"
46
 
47
- # 5. Интерфейс Gradio
48
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
49
  gr.Markdown("""<h1><center>📞 Поддержка клиентов</center></h1>""")
50
 
51
  with gr.Row():
52
  with gr.Column():
53
- input_text = gr.Textbox(label="Опишите проблему")
54
- output_text = gr.Textbox(label="Ответ", lines=5)
55
- btn = gr.Button("Отправить")
56
 
57
  with gr.Column():
58
- gr.Examples(examples, inputs=input_text, label="Примеры обращений")
59
- gr.Markdown("**Совет:** Указывайте номер заказа для быстрого решения")
60
 
61
- btn.click(generate_response, input_text, output_text)
62
 
63
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import pipeline
3
+ from datasets import load_dataset
4
 
5
+ # 1. Загрузка датасета клиентских обращений
6
+ try:
7
+ # Используем открытый датасет на русском языке
8
+ dataset = load_dataset("cursoai/jigsaw-toxic-comments", split="train[:100]")
9
+ examples = [d["question"] for d in dataset]
10
+ except Exception as e:
11
+ print(f"Ошибка загрузки датасета: {e}")
12
+ examples = [
13
+ "Мой заказ #12345 не прибыл",
14
+ "Как вернуть товар?",
15
+ "Не приходит код подтверждения",
16
+ "Ошибка при оплате картой"
17
+ ]
18
 
19
+ # 2. Загрузка облегчённой русскоязычной модели
20
  try:
 
21
  model = pipeline(
22
  "text-generation",
23
+ model="ai-forever/rugpt3small_based_on_gpt2", # Гарантированно рабочая модель
24
+ device="cpu"
 
 
25
  )
26
  except Exception as e:
27
  raise RuntimeError(f"Ошибка загрузки модели: {str(e)}")
28
 
29
+ # 3. Функция генерации ответа
 
 
 
 
 
 
 
 
 
30
  def generate_response(message):
31
  prompt = f"""Ты оператор поддержки. Ответь клиенту вежливо.
32
 
 
44
  except Exception as e:
45
  return f"Ошибка: {str(e)}"
46
 
47
+ # 4. Интерфейс Gradio
48
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
49
  gr.Markdown("""<h1><center>📞 Поддержка клиентов</center></h1>""")
50
 
51
  with gr.Row():
52
  with gr.Column():
53
+ chatbot = gr.Chatbot(height=300)
54
+ msg = gr.Textbox(label="Опишите проблему")
55
+ btn = gr.Button("Отправить", variant="primary")
56
 
57
  with gr.Column():
58
+ gr.Examples(examples, inputs=msg, label="Примеры обращений")
59
+ gr.Markdown("**Советы:**\n1. Указывайте номер заказа\n2. Прикладывайте скриншоты")
60
 
61
+ btn.click(lambda m, c: (m, generate_response(m)), [msg, chatbot], [msg, chatbot])
62
 
63
  demo.launch()