v0.7.3: Косметические изменения в меню
Удалено из меню: - Команда /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 <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
d2f22ee149
commit
81148ee567
1
bot.py
1
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", "Удалить факт по номеру"),
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue