From b4452dfeea2c68a076744aab30755efc75cbd8d2 Mon Sep 17 00:00:00 2001 From: Markov Andrey Date: Tue, 30 Jun 2026 21:36:43 +0000 Subject: [PATCH] Add new file --- bots/commands/clear.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 bots/commands/clear.py diff --git a/bots/commands/clear.py b/bots/commands/clear.py new file mode 100644 index 0000000..de4c3d4 --- /dev/null +++ b/bots/commands/clear.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +""" +Команда !clear – очистка базы знаний (личной, комнатной, глобальной). +Использует RAGClient. +""" + +import logging +from core.commands.base import Command + +logger = logging.getLogger(__name__) + + +class ClearCommand(Command): + name = "!clear" + aliases = ["/clear"] + + async def execute(self, msg, args: str, user_jid: str, room_jid: str = None): + """ + Очищает базу знаний: + - В личном чате – личную БЗ пользователя. + - В групповом чате – БЗ комнаты (требует прав администратора бота). + """ + try: + result = await self.bot.rag_client.clear(user_jid, room_jid, is_global=False) + if result.get('status') == 'ok': + reply = msg.reply("🗑 База знаний очищена.") + else: + reply = msg.reply(f"❌ Ошибка очистки: {result}") + except Exception as e: + logger.exception(f"Ошибка в !clear: {e}") + reply = msg.reply(f"❌ Ошибка: {e}") + if reply: + reply.send() + + def get_help(self) -> str: + return "Очищает базу знаний (личную/комнатную)." \ No newline at end of file