Update app.py
Browse files
app.py
CHANGED
|
@@ -141,27 +141,41 @@ def generate_tt_reply(messages: List[Dict[str, str]]) -> str:
|
|
| 141 |
# --- 3. Gradio интерфейс ---
|
| 142 |
|
| 143 |
def chat_fn(message, history):
|
|
|
|
| 144 |
messages = [{"role": "system", "content": SYS_PROMPT_TT}]
|
| 145 |
for user_msg, bot_msg in history:
|
| 146 |
messages.append({"role": "user", "content": ru2tt(user_msg)})
|
| 147 |
messages.append({"role": "assistant", "content": ru2tt(bot_msg)})
|
| 148 |
-
|
|
|
|
| 149 |
user_tt = ru2tt(message)
|
| 150 |
messages.append({"role": "user", "content": user_tt})
|
| 151 |
-
|
|
|
|
| 152 |
tt_reply = generate_tt_reply(messages)
|
| 153 |
ru_reply = tt2ru(tt_reply)
|
| 154 |
-
|
| 155 |
-
return ru_reply
|
| 156 |
|
| 157 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
| 159 |
-
gr.Markdown("## Татарский
|
|
|
|
| 160 |
chatbot = gr.Chatbot(label="Диалог", height=500)
|
| 161 |
-
msg = gr.Textbox(label="Ваше сообщение (на русском)", placeholder="
|
| 162 |
clear = gr.Button("🗑️ Очистить")
|
| 163 |
|
| 164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
clear.click(lambda: None, None, chatbot, queue=False)
|
| 166 |
|
| 167 |
# server_name="0.0.0.0" и server_port=int(os.getenv("PORT", 7860)) важны для Render
|
|
|
|
| 141 |
# --- 3. Gradio интерфейс ---
|
| 142 |
|
| 143 |
def chat_fn(message, history):
|
| 144 |
+
# Эта часть остается без изменений: формируем историю для модели
|
| 145 |
messages = [{"role": "system", "content": SYS_PROMPT_TT}]
|
| 146 |
for user_msg, bot_msg in history:
|
| 147 |
messages.append({"role": "user", "content": ru2tt(user_msg)})
|
| 148 |
messages.append({"role": "assistant", "content": ru2tt(bot_msg)})
|
| 149 |
+
|
| 150 |
+
# Добавляем новое сообщение пользователя
|
| 151 |
user_tt = ru2tt(message)
|
| 152 |
messages.append({"role": "user", "content": user_tt})
|
| 153 |
+
|
| 154 |
+
# Генерируем и переводим ответ
|
| 155 |
tt_reply = generate_tt_reply(messages)
|
| 156 |
ru_reply = tt2ru(tt_reply)
|
|
|
|
|
|
|
| 157 |
|
| 158 |
+
# 1. Добавляем новый вопрос и ответ в историю, которую видит пользователь
|
| 159 |
+
history.append([message, ru_reply])
|
| 160 |
+
# 2. Возвращаем всю обновленную историю
|
| 161 |
+
return history
|
| 162 |
+
|
| 163 |
+
# Создаем и запускаем интерфейс (здесь тоже небольшое улучшение)
|
| 164 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
| 165 |
+
gr.Markdown("## Татарский чат-бот от команды Сбера")
|
| 166 |
+
# Добавляем type="messages" чтобы убрать предупреждение и использовать новый формат
|
| 167 |
chatbot = gr.Chatbot(label="Диалог", height=500)
|
| 168 |
+
msg = gr.Textbox(label="Ваше сообщение (на русском)", placeholder="Ничек хәлләр?") # Изменил placeholder на татарский для атмосферы :)
|
| 169 |
clear = gr.Button("🗑️ Очистить")
|
| 170 |
|
| 171 |
+
def user(user_message, history):
|
| 172 |
+
# Эта обертка просто добавляет сообщение пользователя в чат сразу
|
| 173 |
+
return "", history + [[user_message, None]]
|
| 174 |
+
|
| 175 |
+
# Обновляем логику отправки сообщения
|
| 176 |
+
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
|
| 177 |
+
chat_fn, chatbot, chatbot
|
| 178 |
+
)
|
| 179 |
clear.click(lambda: None, None, chatbot, queue=False)
|
| 180 |
|
| 181 |
# server_name="0.0.0.0" и server_port=int(os.getenv("PORT", 7860)) важны для Render
|