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]}")
|
state.ai_chat_history.append(f"Assistant: {full_output[:500]}")
|
||||||
save_message(user_id, "assistant", full_output)
|
save_message(user_id, "assistant", full_output)
|
||||||
|
|
||||||
# Отправляем ответ
|
# Отправляем ответ (send_long_message сам разобьёт на части если нужно)
|
||||||
if len(full_output) > 3500:
|
|
||||||
full_output = full_output[:3500] + "\n... (вывод обрезан)"
|
|
||||||
|
|
||||||
await send_long_message(update, full_output, parse_mode="Markdown")
|
await send_long_message(update, full_output, parse_mode="Markdown")
|
||||||
await status_msg.delete()
|
await status_msg.delete()
|
||||||
return
|
return
|
||||||
|
|
@ -556,10 +553,6 @@ async def handle_ai_task(update: Update, text: str):
|
||||||
state.ai_chat_history.append(f"Assistant: {full_output[:500]}")
|
state.ai_chat_history.append(f"Assistant: {full_output[:500]}")
|
||||||
save_message(user_id, "assistant", full_output)
|
save_message(user_id, "assistant", full_output)
|
||||||
|
|
||||||
# Обрезаем если слишком длинный
|
|
||||||
if len(full_output) > 3500:
|
|
||||||
full_output = full_output[:3500] + "\n... (вывод обрезан)"
|
|
||||||
|
|
||||||
# Автоматическое извлечение фактов каждые 5 сообщений
|
# Автоматическое извлечение фактов каждые 5 сообщений
|
||||||
state.messages_since_fact_extract += 1
|
state.messages_since_fact_extract += 1
|
||||||
if state.messages_since_fact_extract >= 5:
|
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
|
# parse_mode=None для full_output (plain text), но Markdown для context_info
|
||||||
# Telegram не поддерживает смешанный parse_mode, поэтому используем Markdown
|
# Telegram не поддерживает смешанный parse_mode, поэтому используем Markdown
|
||||||
# и полагаемся на то что ИИ генерирует корректный текст
|
# и полагаемся на то что ИИ генерирует корректный текст
|
||||||
await update.message.reply_text(
|
# Используем send_long_message для поддержки длинных ответов
|
||||||
response_text,
|
await send_long_message(update, response_text, parse_mode="Markdown")
|
||||||
parse_mode="Markdown"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Обновляем потоковое сообщение на финальный статус
|
# Обновляем потоковое сообщение на финальный статус
|
||||||
if stream_message:
|
if stream_message:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue