From 51fa14771f26c7959a16140b0598bc1b4a6f7e94 Mon Sep 17 00:00:00 2001 From: Kirill Kirilenko Date: Sun, 8 Feb 2026 22:46:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20!?= =?UTF-8?q?=D1=81=D0=B1=D1=80=D0=BE=D1=81=20=D0=B4=D0=BB=D1=8F=20=D0=B3?= =?UTF-8?q?=D1=80=D1=83=D0=BF=D0=BF=D0=BE=D0=B2=D1=8B=D1=85=20=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D0=B2.=20=D0=9A=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D0=B0=20!=D0=BB=D0=B8=D1=87=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=20=D0=B2=20!=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg/handlers/admin.py | 19 +++++++++++++++++-- tg/handlers/user.py | 3 ++- vk/handlers/admin.py | 21 +++++++++++++++++++-- vk/handlers/user.py | 3 ++- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/tg/handlers/admin.py b/tg/handlers/admin.py index 8de2c0c..db799a6 100644 --- a/tg/handlers/admin.py +++ b/tg/handlers/admin.py @@ -74,7 +74,7 @@ async def set_greeting_handler(message: Message, bot: Bot): await message.answer('Приветствие изменено.') -@router.message(F.text == "!личность") +@router.message(F.text == "!запрос") async def set_ai_prompt_handler(message: Message, bot: Bot): chat_id = message.chat.id chat = database.DB.create_chat_if_not_exists(bot.id, chat_id) @@ -91,8 +91,23 @@ async def set_ai_prompt_handler(message: Message, bot: Bot): return database.DB.chat_update(bot.id, chat_id, ai_prompt=message.reply_to_message.text) + await message.answer('Системный запрос ИИ на уровне чата изменен.') + + +@router.message(F.text == "!сброс") +async def clear_context_handler(message: Message, bot: Bot): + chat_id = message.chat.id + chat = database.DB.create_chat_if_not_exists(bot.id, chat_id) + if chat['active'] == 0: + await message.answer(MESSAGE_CHAT_NOT_ACTIVE) + return + + if not await tg_user_is_admin(chat_id, message.from_user.id, bot): + await message.answer(MESSAGE_PERMISSION_DENIED) + return + ai_agent.agent.clear_chat_context(bot.id, chat_id) - await message.answer('Личность ИИ изменена.') + await message.answer("Контекст очищен.") @router.message(F.text == "!предупреждение") diff --git a/tg/handlers/user.py b/tg/handlers/user.py index 4dbdf25..69bdb57 100644 --- a/tg/handlers/user.py +++ b/tg/handlers/user.py @@ -58,7 +58,8 @@ async def help_handler(message: Message, bot: Bot): response += '!старт - начать работу в чате\n' response += '!правила* - изменить правила\n' response += '!приветствие* - изменить приветствие новичков\n' - response += '!личность* - изменить описание личности ИИ\n' + response += '!запрос* - изменить системный запрос ИИ на уровне чата\n' + response += '!сброс - очистить контекст ИИ\n' response += '!предупреждение* - выдать предупреждение участнику\n' response += '\n' response += Italic('Команды с пометкой * нужно вызывать в ответном сообщении.') diff --git a/vk/handlers/admin.py b/vk/handlers/admin.py index 1913300..070e3b4 100644 --- a/vk/handlers/admin.py +++ b/vk/handlers/admin.py @@ -134,7 +134,7 @@ async def set_birthday_handler(message: Message): await message.answer('Уведомление о дне рождения изменено.') -@labeler.chat_message(text="!личность") +@labeler.chat_message(text="!запрос") async def set_ai_prompt_handler(message: Message): bot_id = get_bot_id(message.ctx_api) chat_id = message.peer_id @@ -153,8 +153,25 @@ async def set_ai_prompt_handler(message: Message): return database.DB.chat_update(bot_id, chat_id, ai_prompt=message.reply_message.text) + await message.answer('Системный запрос ИИ на уровне чата изменен.') + + +@labeler.chat_message(text="!сброс") +async def clear_context_handler(message: Message): + bot_id = get_bot_id(message.ctx_api) + chat_id = message.peer_id + chat = database.DB.create_chat_if_not_exists(bot_id, chat_id) + if chat['active'] == 0: + await message.answer(MESSAGE_CHAT_NOT_ACTIVE) + return + + chat_members = await message.ctx_api.messages.get_conversation_members(peer_id=chat_id, extended=False) + if not vk_user_is_admin(message.from_id, chat_members): + await message.answer(MESSAGE_PERMISSION_DENIED) + return + ai_agent.agent.clear_chat_context(bot_id, chat_id) - await message.answer('Личность ИИ изменена.') + await message.answer("Контекст очищен.") @labeler.chat_message(text="!предупреждение") diff --git a/vk/handlers/user.py b/vk/handlers/user.py index 8e5e521..df8d7e4 100644 --- a/vk/handlers/user.py +++ b/vk/handlers/user.py @@ -67,7 +67,8 @@ async def rules_handler(message: Message): response += '!приветствие* - изменить приветствие новичков\n' response += '!возвращение* - изменить приветствие при возвращении\n' response += '!деньрождения* - изменить уведомление о дне рождения\n' - response += '!личность* - изменить описание личности ИИ\n' + response += '!запрос* - изменить системный запрос ИИ на уровне чата\n' + response += '!сброс - очистить контекст ИИ\n' response += '!предупреждение* - выдать предупреждение участнику\n' response += '!исключить* - навсегда исключить участника\n' response += '\n'