From 81148ee56765cd8cd3b4dcb19592a2391b0310fa Mon Sep 17 00:00:00 2001 From: mirivlad Date: Sat, 28 Feb 2026 11:25:48 +0800 Subject: [PATCH] =?UTF-8?q?v0.7.3:=20=D0=9A=D0=BE=D1=81=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Удалено из меню: - Команда /ai из списка команд бота - Кнопка 'Управление доступом' из меню настроек - Кнопка 'AI-провайдер' из меню настроек Также удалены обработчики: - access_menu, show_access, add_access, remove_access - ai_provider_menu, ai_provider_toggle, ai_provider_info Команды /ai* и AI-провайдеры остаются доступными через: - /ai_presets, /ai_off, /ai_qwen, /ai_giga_* - Прямые команды /ai Co-authored-by: Qwen-Coder --- bot.py | 1 - bot/handlers/callbacks.py | 120 +------------------------------------- bot/keyboards/menus.py | 2 - 3 files changed, 1 insertion(+), 122 deletions(-) diff --git a/bot.py b/bot.py index 0cb59f2..514f4b1 100644 --- a/bot.py +++ b/bot.py @@ -1724,7 +1724,6 @@ async def post_init(application: Application): BotCommand("ai_giga_auto", "🧠 GigaChat Авто (Lite/Pro)"), BotCommand("ai_giga_lite", "🚀 GigaChat Lite (дешево)"), BotCommand("ai_giga_pro", "👑 GigaChat Pro (максимум)"), - BotCommand("ai", "Задача для Qwen Code AI"), BotCommand("memory", "Статистика памяти ИИ"), BotCommand("facts", "Показать сохранённые факты"), BotCommand("forget", "Удалить факт по номеру"), diff --git a/bot/handlers/callbacks.py b/bot/handlers/callbacks.py index 96f31d4..ff384b3 100644 --- a/bot/handlers/callbacks.py +++ b/bot/handlers/callbacks.py @@ -390,14 +390,7 @@ async def menu_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): parse_mode="Markdown", reply_markup=menu_builder.get_keyboard("settings") ) - - elif callback == "access_menu": - await query.edit_message_text( - "👥 *Управление доступом*", - parse_mode="Markdown", - reply_markup=menu_builder.get_keyboard("access") - ) - + # Обработка команд выполнения elif callback.startswith("cmd_"): # Поиск команды в меню @@ -444,30 +437,6 @@ async def menu_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): reply_markup=menu_builder.get_keyboard("settings") ) - elif callback == "show_access": - if config.allowed_users: - text = "👥 *Разрешённые пользователи:*\n" + "\n".join(f"• `{uid}`" for uid in config.allowed_users) - else: - text = "👥 *Доступ открыт для всех*\n\n(список разрешённых пользователей пуст)" - await query.edit_message_text(text, parse_mode="Markdown") - - elif callback == "add_access": - await query.edit_message_text( - "➕ *Добавление пользователя*\n\n" - "Для добавления пользователя отредактируйте `.env`:\n" - "```\nALLOWED_USERS=123456789,987654321\n```\n" - "Ваш ID можно узнать через @userinfobot", - parse_mode="Markdown" - ) - - elif callback == "remove_access": - if config.allowed_users: - text = "➖ *Удаление пользователя*\n\n" + "\n".join(f"• `{uid}`" for uid in config.allowed_users) - text += "\n\nУдалите ID из `.env` чтобы убрать доступ" - else: - text = "➖ Список пуст, некого удалять" - await query.edit_message_text(text, parse_mode="Markdown") - elif callback == "about": await query.edit_message_text( f"ℹ️ *О боте*\n\n" @@ -620,90 +589,3 @@ async def menu_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): reply_markup=menu_builder.get_keyboard("memory") ) - # --- Обработчики меню AI-провайдера --- - elif callback == "ai_provider_menu": - state.current_menu = "ai_provider" - - # Получаем текущего провайдера - from bot.ai_provider_manager import get_ai_provider_manager - provider_manager = get_ai_provider_manager() - current_provider = provider_manager.get_current_provider(state) - providers_info = provider_manager.get_all_providers_info(current_provider) - - output = "🤖 **AI-провайдеры**\n\n" - output += f"*Текущий провайдер:* " - - for info in providers_info: - icon = "✅" if info.is_active else "⬜" - status = "✓ Доступен" if info.available else "✗ Недоступен" - output += f"\n\n{icon} **{info.name}** — {status}\n" - output += f"_{info.description}_\n" - - output += "\n\nВыберите действие:" - - await query.edit_message_text( - output, - parse_mode="Markdown", - reply_markup=menu_builder.get_keyboard("ai_provider") - ) - - elif callback == "ai_provider_toggle": - # Переключаем провайдер - from bot.ai_provider_manager import get_ai_provider_manager - provider_manager = get_ai_provider_manager() - - current_provider = provider_manager.get_current_provider(state) - new_provider = "gigachat" if current_provider == "qwen" else "qwen" - - success, message = provider_manager.switch_provider(user_id, new_provider, state_manager) - - if success: - provider_info = provider_manager.get_provider_info(new_provider, is_active=True) - await query.edit_message_text( - f"{message}\n\n" - f"**{provider_info.name}**\n" - f"_{provider_info.description}_", - parse_mode="Markdown", - reply_markup=menu_builder.get_keyboard("ai_provider") - ) - else: - await query.edit_message_text( - f"❌ {message}\n\n" - "Проверьте настройки в .env файле.", - parse_mode="Markdown", - reply_markup=menu_builder.get_keyboard("ai_provider") - ) - - elif callback == "ai_provider_info": - # Показываем подробную информацию - from bot.ai_provider_manager import get_ai_provider_manager - provider_manager = get_ai_provider_manager() - current_provider = provider_manager.get_current_provider(state) - - output = "ℹ️ **Информация о провайдерах**\n\n" - - # Qwen - output += "**🔹 Qwen Code**\n" - output += "Alibaba Qwen Code CLI — мощный AI-ассистент с:\n" - output += "• Поддержкой инструментов (поиск, RSS, SSH, cron)\n" - output += "• Потоковым выводом ответа\n" - output += "• Контекстом до 256K токенов\n" - output += "• RAG-памятью на ChromaDB\n\n" - - # GigaChat - output += "**🟢 GigaChat**\n" - output += "Sber GigaChat API — российская AI-модель:\n" - output += "• Поддержка русского языка из коробки\n" - output += "• Модели: GigaChat-Pro, GigaChat-Max\n" - output += "• Генерация ответов и изображений\n" - output += "• Требует настройки в .env\n\n" - - output += f"*Текущий провайдер:* `{current_provider}`\n" - output += "\nИспользуйте `/ai` для переключения." - - await query.edit_message_text( - output, - parse_mode="Markdown", - reply_markup=menu_builder.get_keyboard("ai_provider") - ) - diff --git a/bot/keyboards/menus.py b/bot/keyboards/menus.py index 91b1606..a31eb29 100644 --- a/bot/keyboards/menus.py +++ b/bot/keyboards/menus.py @@ -171,9 +171,7 @@ def init_menus(menu_builder: MenuBuilder): MenuItem("📝 Изменить имя бота", "set_name", icon="📝"), MenuItem("📄 Изменить описание", "set_description", icon="📄"), MenuItem("🎨 Изменить иконку", "set_icon", icon="🎨"), - MenuItem("👥 Управление доступом", "access_menu", icon="👥"), MenuItem("🧠 Память ИИ", "memory_menu", icon="🧠"), - MenuItem("🤖 AI-провайдер", "ai_provider_menu", icon="🤖"), MenuItem("⬅️ Назад", "main", icon="⬅️"), ] menu_builder.add_menu("settings", settings_menu)