From f114d874ff1931c088d3622b836eec5f1fdd4c5f Mon Sep 17 00:00:00 2001 From: Vladimir Date: Thu, 5 Mar 2026 02:35:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D1=8B=D1=85=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=20send=5Flong=5Fmessage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Qwen-Coder --- bot.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/bot.py b/bot.py index 9548548..f2784a9 100644 --- a/bot.py +++ b/bot.py @@ -256,11 +256,8 @@ async def handle_ai_task(update: Update, text: str): # Добавляем в историю state.ai_chat_history.append(f"Assistant: {full_output[:500]}") save_message(user_id, "assistant", full_output) - - # Отправляем ответ - if len(full_output) > 3500: - full_output = full_output[:3500] + "\n... (вывод обрезан)" - + + # Отправляем ответ (send_long_message сам разобьёт на части если нужно) await send_long_message(update, full_output, parse_mode="Markdown") await status_msg.delete() return @@ -556,10 +553,6 @@ async def handle_ai_task(update: Update, text: str): state.ai_chat_history.append(f"Assistant: {full_output[:500]}") save_message(user_id, "assistant", full_output) - # Обрезаем если слишком длинный - if len(full_output) > 3500: - full_output = full_output[:3500] + "\n... (вывод обрезан)" - # Автоматическое извлечение фактов каждые 5 сообщений state.messages_since_fact_extract += 1 if state.messages_since_fact_extract >= 5: @@ -580,11 +573,9 @@ async def handle_ai_task(update: Update, text: str): # parse_mode=None для full_output (plain text), но Markdown для context_info # Telegram не поддерживает смешанный parse_mode, поэтому используем Markdown # и полагаемся на то что ИИ генерирует корректный текст - await update.message.reply_text( - response_text, - parse_mode="Markdown" - ) - + # Используем send_long_message для поддержки длинных ответов + await send_long_message(update, response_text, parse_mode="Markdown") + # Обновляем потоковое сообщение на финальный статус if stream_message: try: