feat: улучшена обработка длинных сообщений через send_long_message
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
719dfa2015
commit
f114d874ff
15
bot.py
15
bot.py
|
|
@ -257,10 +257,7 @@ 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,10 +573,8 @@ 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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue