From 0abd8c37f6603abbbcd7e8a9759c40ddfa487239 Mon Sep 17 00:00:00 2001 From: Kirill Kirilenko Date: Sun, 1 Feb 2026 21:06:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=20!=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg/handlers/user.py | 16 ++++++++++------ vk/handlers/user.py | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/tg/handlers/user.py b/tg/handlers/user.py index 5b076b5..4dbdf25 100644 --- a/tg/handlers/user.py +++ b/tg/handlers/user.py @@ -207,12 +207,16 @@ async def check_rules_violation_handler(message: Message, bot: Bot): prompt += chat_rules + '\n\n' prompt += 'Проверь, не нарушают ли правила следующие сообщения (если нарушают, то укажи пункты правил):' - ai_message = ai_agent.Message(user_name=await get_user_name_for_ai(message.from_user), text=prompt) + ai_message = ai_agent.Message(user_name=await get_user_name_for_ai(message.from_user), + text=prompt, message_id=message.message_id) ai_fwd_messages = [ai_agent.Message(user_name=await get_user_name_for_ai(message.reply_to_message.from_user), text=message.reply_to_message.text)] - await message.answer( - await utils.run_with_progress( - partial(ai_agent.agent.get_group_chat_reply, bot.id, chat_id, ai_message, ai_fwd_messages), - partial(bot.send_chat_action, chat_id, 'typing'), - interval=4)) + answer, success = await utils.run_with_progress( + partial(ai_agent.agent.get_group_chat_reply, bot.id, chat_id, ai_message, ai_fwd_messages), + partial(bot.send_chat_action, chat_id, 'typing'), + interval=4) + + answer_id = (await message.answer(answer)).message_id + if success: + ai_agent.agent.set_last_response_id(bot.id, chat_id, answer_id) diff --git a/vk/handlers/user.py b/vk/handlers/user.py index 533cac8..8e5e521 100644 --- a/vk/handlers/user.py +++ b/vk/handlers/user.py @@ -245,7 +245,8 @@ async def check_rules_violation_handler(message: Message): prompt += chat_rules + '\n\n' prompt += 'Проверь, не нарушают ли правила следующие сообщения (если нарушают, то укажи пункты правил):' - ai_message = ai_agent.Message(user_name=await get_user_name_for_ai(message.ctx_api, message.from_id), text=prompt) + ai_message = ai_agent.Message(user_name=await get_user_name_for_ai(message.ctx_api, message.from_id), + text=prompt, message_id=message.message_id) ai_fwd_messages: list[ai_agent.Message] = [] if message.reply_message is not None and len(message.reply_message.text) > 0: ai_fwd_messages.append( @@ -262,8 +263,11 @@ async def check_rules_violation_handler(message: Message): await message.answer(MESSAGE_NEED_REPLY_OR_FORWARD) return - await message.answer( - await utils.run_with_progress( - partial(ai_agent.agent.get_group_chat_reply, bot_id, chat_id, ai_message, ai_fwd_messages), - partial(message.ctx_api.messages.set_activity, peer_id=chat_id, type='typing'), - interval=4)) + answer, success = await utils.run_with_progress( + partial(ai_agent.agent.get_group_chat_reply, bot_id, chat_id, ai_message, ai_fwd_messages), + partial(message.ctx_api.messages.set_activity, peer_id=chat_id, type='typing'), + interval=4) + + answer_id = (await message.answer(answer)).message_id + if success: + ai_agent.agent.set_last_response_id(bot_id, chat_id, answer_id)