Boris commited on
Commit
43fbcaf
·
1 Parent(s): ad061f4
Files changed (1) hide show
  1. app.py +42 -23
app.py CHANGED
@@ -3,6 +3,7 @@ from langchain_core.messages import HumanMessage, AIMessage
3
  from get_classification import get_graph_class
4
  from datetime import datetime
5
 
 
6
  messages = []
7
  bot_instance = None
8
 
@@ -14,7 +15,7 @@ def find_last_bot_message(messages_list):
14
  return None
15
 
16
  def save_broken_case(messages_dict):
17
- """Сохраняет 'сломанные' кейсы (заглушка)"""
18
  result_str = ""
19
  for elem in messages_dict:
20
  role = elem["role"]
@@ -66,28 +67,46 @@ def clear_chat():
66
  bot_instance = None
67
  return []
68
 
69
- # Создаем интерфейс чата
70
- chat_interface = gr.ChatInterface(
71
- fn=predict,
72
- title="Чат-бот технической поддержки",
73
- description="Задайте ваш вопрос технической поддержке",
74
- additional_inputs=[
75
- gr.Button("Clear", variant="stop")
76
- ],
77
- examples=[
78
- "Как настроить VPN?",
79
- "Почему не работает принтер?",
80
- "Как сбросить пароль?"
81
- ]
82
- )
83
 
84
- # Добавляем обработчик для кнопки Clear
85
- chat_interface.additional_inputs[0].click(
86
- fn=clear_chat,
87
- inputs=[],
88
- outputs=chat_interface.chatbot
89
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
- # Запускаем приложение
92
  if __name__ == "__main__":
93
- chat_interface.launch()
 
3
  from get_classification import get_graph_class
4
  from datetime import datetime
5
 
6
+ # Глобальные переменные состояния
7
  messages = []
8
  bot_instance = None
9
 
 
15
  return None
16
 
17
  def save_broken_case(messages_dict):
18
+ """Сохраняет 'сломанные' кейсы"""
19
  result_str = ""
20
  for elem in messages_dict:
21
  role = elem["role"]
 
67
  bot_instance = None
68
  return []
69
 
70
+ # Примеры в правильном формате (список строк)
71
+ examples = [
72
+ "Как настроить VPN?",
73
+ "Почему не работает принтер?",
74
+ "Как сбросить пароль?"
75
+ ]
 
 
 
 
 
 
 
 
76
 
77
+ # Создаем интерфейс чата с новым API
78
+ with gr.Blocks() as demo:
79
+ gr.Markdown("## Чат-бот технической поддержки")
80
+ gr.Markdown("Задайте ваш вопрос технической поддержке")
81
+
82
+ chatbot = gr.Chatbot(height=500)
83
+ msg = gr.Textbox(label="Ваш вопрос")
84
+
85
+ with gr.Row():
86
+ clear_btn = gr.Button("Очистить чат", variant="stop")
87
+ submit_btn = gr.Button("Отправить")
88
+
89
+ # Обработчики событий
90
+ def respond(message, chat_history):
91
+ bot_message = predict(message, chat_history)
92
+ chat_history.append((message, bot_message))
93
+ return "", chat_history
94
+
95
+ msg.submit(respond, [msg, chatbot], [msg, chatbot])
96
+ submit_btn.click(respond, [msg, chatbot], [msg, chatbot])
97
+ clear_btn.click(
98
+ fn=clear_chat,
99
+ inputs=None,
100
+ outputs=chatbot,
101
+ queue=False
102
+ )
103
+
104
+ # Примеры
105
+ gr.Examples(
106
+ examples=examples,
107
+ inputs=msg,
108
+ label="Примеры запросов"
109
+ )
110
 
 
111
  if __name__ == "__main__":
112
+ demo.launch()