From 58b9f3633a63661f59de929faa178f6c6b958981 Mon Sep 17 00:00:00 2001 From: Markov Andrey Date: Tue, 30 Jun 2026 21:40:15 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20learn.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bots/commands/learn.py | 49 +++++++++--------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) diff --git a/bots/commands/learn.py b/bots/commands/learn.py index 672a063..39c41e8 100644 --- a/bots/commands/learn.py +++ b/bots/commands/learn.py @@ -3,10 +3,8 @@ Команды управления режимом обучения: !learn, !stop_learn, !global_learn. Поддерживают флаги --global и --title. -Изменения для групповой работы: -- В групповом чате !learn не нужен для файлов (они индексируются автоматически), - но может использоваться для ссылок (если пользователь хочет добавить ссылку в БЗ комнаты). -- Режим обучения в комнате сохраняется с привязкой к комнате. +В новой архитектуре команды только управляют состоянием learning_mode, +индексация выполняется через RAG-сервер. """ import logging @@ -33,44 +31,25 @@ class LearnCommand(Command): if user_jid not in self.bot.config.admin_jids: reply = msg.reply("⛔ У вас нет прав на глобальное обучение.") if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить сообщение о недостатке прав на глобальное обучение") + reply.send() return if room_jid: - # В групповом чате – режим обучения для комнаты (только ссылки, файлы и так автоматом) mode = "room" - # Сохраняем режим с указанием комнаты self.bot.learning_mode[user_jid] = (mode, room_jid) if title: reply = msg.reply(f"🎓 Режим обучения ВКЛЮЧЁН для КОМНАТНОЙ БЗ (--title \"{title}\"). При следующей ссылке будет использован заголовок.") - if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение обучения для комнаты с title") else: reply = msg.reply(f"🎓 Режим обучения ВКЛЮЧЁН для КОМНАТНОЙ БЗ. Теперь можно отправить ссылку – она добавится в БЗ комнаты.") - if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение обучения для комнаты") else: - # Личный чат mode = "global" if is_global else "personal" - self.bot.learning_mode[user_jid] = (mode, None) # храним кортеж для единообразия + self.bot.learning_mode[user_jid] = (mode, None) if title: reply = msg.reply(f"🎓 Режим обучения ВКЛЮЧЁН для {'ГЛОБАЛЬНОЙ' if is_global else 'ЛИЧНОЙ'} БЗ (--title \"{title}\").") - if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение обучения с title") else: reply = msg.reply(f"🎓 Режим обучения ВКЛЮЧЁН для {'ГЛОБАЛЬНОЙ' if is_global else 'ЛИЧНОЙ'} БЗ.") - if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение обучения") + if reply: + reply.send() def get_help(self) -> str: return "Включает режим обучения (следующий файл/ссылка добавятся в БЗ). В личном чате – личная/глобальная, в групповом – комнатная. Флаги: --global (только личный), --title \"Название\"." @@ -85,9 +64,7 @@ class StopLearnCommand(Command): self.bot.learning_mode.pop(user_jid, None) reply = msg.reply("✅ Режим обучения ВЫКЛЮЧЕН.") if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение выключения обучения") + reply.send() def get_help(self) -> str: return "Выключает режим обучения." @@ -106,23 +83,17 @@ class GlobalLearnCommand(Command): if not self.check_permission(user_jid): reply = msg.reply("⛔ Нет прав.") if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить сообщение о недостатке прав (learn)") + reply.send() return if room_jid: reply = msg.reply("⚠️ Команда !global_learn работает только в личном чате.") if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить сообщение об ограничении !global_learn") + reply.send() return self.bot.learning_mode[user_jid] = ("global", None) reply = msg.reply("🌐 Режим ГЛОБАЛЬНОГО обучения включён.") if reply: - reply.send() # исправлено - else: - logger.error("Не удалось отправить подтверждение глобального обучения") + reply.send() def get_help(self) -> str: return "Включает режим глобального обучения (админ, только в личном чате)." \ No newline at end of file