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: