import logging from core.commands.base import Command logger = logging.getLogger(__name__) class KbCommand(Command): name = "!kb" aliases = ["/kb"] async def execute(self, msg, args: str, user_jid: str, room_jid: str = None): try: result = await self.bot.rag_client.list_documents(user_jid, room_jid) sources = result.get('documents', []) if not sources: reply = msg.reply("πŸ“­ Π‘Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ пуста.") else: global_docs = [s['source_name'] for s in sources if s.get('is_global')] other_docs = [s['source_name'] for s in sources if not s.get('is_global')] lines = [] if global_docs: lines.append("🌍 Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅:") lines.extend(f" β€’ {name}" for name in global_docs) if other_docs: if room_jid: lines.append(f"🏠 Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ {room_jid}:") else: lines.append("πŸ‘€ Π›ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹:") lines.extend(f" β€’ {name}" for name in other_docs) reply = msg.reply("\n".join(lines)) except Exception as e: logger.exception(f"Ошибка Π² !kb: {e}") reply = msg.reply(f"❌ Ошибка: {e}") if reply: reply.send() def get_help(self) -> str: return "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π±Π°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉ (Π»ΠΈΡ‡Π½Ρ‹Π΅/ΠΊΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹Π΅ + Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅)."