From 66fdbc33607effebf53b80d679b56e6a439b8e00 Mon Sep 17 00:00:00 2001 From: Kirill Kirilenko Date: Sat, 24 Jan 2026 02:26:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D0=B8=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=87=D0=BD=D1=8B=D1=85=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg/handlers/private.py | 22 ++++++++++++++-------- vk/handlers/private.py | 16 +++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/tg/handlers/private.py b/tg/handlers/private.py index 889fa69..9d7e760 100644 --- a/tg/handlers/private.py +++ b/tg/handlers/private.py @@ -1,12 +1,13 @@ from functools import partial from aiogram import Router, F -from aiogram.enums import ChatType +from aiogram.enums import ChatType, ContentType from aiogram.filters import Command, CommandObject, CommandStart from aiogram.types import Message import ai_agent import utils +from messages import * import tg.tg_database as database from .default import ACCEPTED_CONTENT_TYPES @@ -43,11 +44,16 @@ async def reset_context_handler(message: Message): @router.message(F.content_type.in_(ACCEPTED_CONTENT_TYPES), F.chat.type == ChatType.PRIVATE) async def any_message_handler(message: Message): chat_id = message.chat.id - chat = database.DB.create_chat_if_not_exists(chat_id) - chat_prompt = chat['ai_prompt'] - await message.answer( - await utils.run_with_progress( - partial(ai_agent.agent.get_private_chat_reply, chat_id, chat_prompt, message.text), - partial(message.bot.send_chat_action, chat_id, 'typing'), - interval=4)) + if message.content_type != ContentType.TEXT: + await message.answer(MESSAGE_NOT_TEXT) + return + + answer, success = await utils.run_with_progress( + partial(ai_agent.agent.get_private_chat_reply, chat_id, message.text, message.message_id), + partial(message.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(chat_id, answer_id) diff --git a/vk/handlers/private.py b/vk/handlers/private.py index 4b604c6..f9ee1b5 100644 --- a/vk/handlers/private.py +++ b/vk/handlers/private.py @@ -6,6 +6,7 @@ from vkbottle.framework.labeler import BotLabeler import ai_agent import utils +from messages import * import vk.vk_database as database @@ -41,15 +42,16 @@ async def reset_context_handler(message: Message): @labeler.private_message() async def any_message_handler(message: Message): chat_id = message.peer_id - chat = database.DB.create_chat_if_not_exists(chat_id) if len(message.text) == 0: + await message.answer(MESSAGE_NOT_TEXT) return - chat_prompt = chat['ai_prompt'] + answer, success = await utils.run_with_progress( + partial(ai_agent.agent.get_private_chat_reply, chat_id, message.text, message.message_id), + partial(message.ctx_api.messages.set_activity, peer_id=chat_id, type='typing'), + interval=4) - await message.answer( - await utils.run_with_progress( - partial(ai_agent.agent.get_private_chat_reply, chat_id, chat_prompt, message.text), - 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(chat_id, answer_id)