3.9 KiB
3.9 KiB
AI Provider Switching
Обзор
Бот поддерживает переключение между AI-провайдерами:
- Qwen Code — основной провайдер (Alibaba)
- GigaChat — альтернативный провайдер (Sber)
Использование
Через команду /ai
Просмотр текущего статуса:
/ai
Покажет текущего провайдера и доступные опции.
Переключение на Qwen:
/ai qwen
Переключение на GigaChat:
/ai gigachat
Через меню
- Нажмите
/settingsили кнопку "⚙️ Настройки бота" - Выберите "🤖 AI-провайдер"
- Доступные опции:
- "🔄 Переключить AI-провайдер" — переключает на альтернативный провайдер
- "ℹ️ Информация о провайдерах" — подробная информация о каждом провайдере
Архитектура
Новые файлы
bot/ai_provider_manager.py— менеджер управления провайдерамиbot/models/user_state.py— добавлено полеcurrent_ai_provider
Изменённые файлы
bot.py— модифицированhandle_ai_task()для использования текущего провайдераbot/handlers/commands.py— добавлена команда/aibot/handlers/callbacks.py— добавлены обработчики меню AI-провайдераbot/keyboards/menus.py— добавлено меню "🤖 AI-провайдер"
Как это работает
-
Хранение состояния: Каждый пользователь имеет своё предпочтение провайдера в
UserState.current_ai_provider -
Обработка запросов: При получении AI-запроса
handle_ai_task()проверяет текущего провайдера и использует соответствующий API:- Qwen: Потоковый вывод с
on_chunkcallback - GigaChat: Ответ целиком
- Qwen: Потоковый вывод с
-
Переключение: При переключении провайдера обновляется состояние пользователя, новый запрос сразу идёт через выбранного провайдера
Настройка GigaChat
Для использования GigaChat добавьте в .env:
# GigaChat API (Сбер)
GIGACHAT_CLIENT_ID=ваш-client-id-uuid
GIGACHAT_CLIENT_SECRET=ваш-client-secret
GIGACHAT_SCOPE=GIGACHAT_API_PERS
GIGACHAT_AUTH_URL=https://ngw.devices.sberbank.ru:9443/api/v2/oauth
GIGACHAT_MODEL=GigaChat-Pro
Отображение в ответе
В конце каждого AI-ответа указывается используемый провайдер:
📊 Контекст: 0.5%
🤖 AI: Qwen Code
или
📊 Контекст: 0.5%
🤖 AI: GigaChat
Приоритеты провайдеров
- По умолчанию: Qwen Code
- Если GigaChat не настроен: Переключение недоступно (показывается ошибка)
- Инструменты: Доступны только с Qwen (GigaChat используется только для чата)
Будущие улучшения
- Умное переключение (автоматический выбор провайдера по типу задачи)
- Поддержка инструментов для GigaChat
- Статистика использования провайдеров
- Настройка провайдера по умолчанию