-
Notifications
You must be signed in to change notification settings - Fork 7
Cloud LLM Providers
Настройка и использование облачных LLM провайдеров.
Workspace-фильтрация: Провайдеры фильтруются по
workspace_idиз JWT. CRUD-эндпоинты используютworkspace_context()для изоляции данных между workspace. Системные методы (default provider, first enabled) остаются без фильтрации.
| Провайдер | Тип | Бесплатные модели |
|---|---|---|
| OpenRouter | Агрегатор | ✅ Есть |
| Google Gemini | Прямой | ❌ |
| OpenAI | Прямой | ❌ |
| Anthropic | Прямой | ❌ |
| DeepSeek | Прямой | ❌ |
| Kimi (Moonshot) | Прямой | ❌ |
OpenRouter — агрегатор, предоставляющий доступ к множеству моделей через единый API. Используется в проекте как дефолтный бесплатный backend после окончания триала Claude: цепочка моделей от мощных к слабым, при недоступности первой (rate-limit или 5xx) — автоматический переход к следующей. Работа ассистента не прерывается.
В порядке от мощных к слабым — таким же его прописывает сидер scripts/seed_openrouter_provider.py:
| # | Модель | ID |
|---|---|---|
| 1 | DeepSeek R1 (reasoning) | deepseek/deepseek-r1:free |
| 2 | DeepSeek V3.1 (671B MoE) | deepseek/deepseek-chat-v3.1:free |
| 3 | Llama 3.3 70B Instruct | meta-llama/llama-3.3-70b-instruct:free |
| 4 | Qwen 2.5 72B Instruct (multilingual) | qwen/qwen-2.5-72b-instruct:free |
| 5 | NVIDIA Nemotron 70B | nvidia/llama-3.1-nemotron-70b-instruct:free |
| 6 | Gemini 2.0 Flash Experimental | google/gemini-2.0-flash-exp:free |
| 7 | Llama 3.2 11B Vision Instruct | meta-llama/llama-3.2-11b-vision-instruct:free |
| 8 | Mistral Nemo (12B) | mistralai/mistral-nemo:free |
| 9 | Llama 3.1 8B Instruct | meta-llama/llama-3.1-8b-instruct:free |
Free-модели на OpenRouter приходят/уходят — переоценивай этот список раз в квартал.
Триггеры переключения на следующую модель (в cloud_llm_service.py:_RETRIABLE_STATUSES):
| HTTP | Что значит |
|---|---|
| 402 | Payment Required — модель стала платной для текущего account tier |
| 404 | Not Found — модель удалена с OpenRouter |
| 429 | Rate-limit (free-модели ограничены ~20 req/min на аккаунт) |
| 500, 502, 503 | Серверная ошибка провайдера модели |
fallback_models хранится в config провайдера (JSON), читается OpenAICompatibleProvider.__init__ и строит _model_chain = [primary] + fallback_models. При срабатывании retriable-кода переходим к следующей и так далее.
Идемпотентный одноразовый скрипт прописывает цепочку в БД и создаёт провайдер openrouter-default:
venv/bin/python scripts/seed_openrouter_provider.pyЧто делает:
- Создаёт
CloudLLMProvider(id="openrouter-default", provider_type="openrouter", enabled=False)с цепочкой из 9 моделей вconfig.fallback_models - Если провайдер уже есть — только обновляет
fallback_models+model_name, API key и флагиenabled/is_defaultсохраняет
После сидера остаётся:
- Зарегистрироваться на openrouter.ai, получить API key
- В админке
/admin/llmвставить ключ в провайдерopenrouter-defaultи включить - Опционально — сделать default или выбрать в Telegram-ботах / виджетах через
llm_backend = cloud:openrouter-default
- Зарегистрируйтесь на openrouter.ai
- Получите API ключ
- Создайте провайдера в админке:
- Тип: OpenRouter
- API Key: ваш ключ
- Модель: первая из цепочки
- В JSON
configдобавьте"fallback_models": [...]с нужным порядком
| Модель | Контекст | Скорость |
|---|---|---|
| gemini-2.0-flash | 1M токенов | Быстрая |
| gemini-2.5-pro | 1M токенов | Средняя |
Для регионов с ограничениями доступа к Google API:
- В настройках провайдера найдите секцию "VLESS Proxy"
- Вставьте VLESS URL
- Протестируйте подключение
- Сохраните
Подробнее: VLESS-Proxy
- Получите API ключ в Google AI Studio
- Создайте провайдера:
- Тип: Gemini
- API Key: ваш ключ
- Модель: gemini-2.0-flash
| Модель | Описание |
|---|---|
| gpt-4o | Флагманская модель |
| gpt-4o-mini | Быстрая и дешёвая |
- Получите API ключ на platform.openai.com
- Создайте провайдера:
- Тип: OpenAI
- API Key: ваш ключ
- Модель: gpt-4o-mini
| Модель | Описание |
|---|---|
| claude-opus-4-7 | Флагман (1M контекст) — лучшее качество reasoning |
| claude-sonnet-4-6 | Баланс скорости и качества |
| claude-haiku-4-5 | Быстрая и дешёвая |
На триале новых пользователей по умолчанию работает именно Claude (Anthropic) — это основное УТП проекта.
Тип провайдера claude_bridge — использует локально установленный Claude Code CLI (через subprocess) вместо API Anthropic. Не требует API key, работает на учётке Claude CLI пользователя. Подробнее: Claude-Code.
- Получите API ключ на console.anthropic.com
- Создайте провайдера:
- Тип: Anthropic
- API Key: ваш ключ
- Модель: claude-sonnet-4-6 (универсальный выбор)
| Модель | Описание |
|---|---|
| deepseek-chat | Чат-модель |
| deepseek-coder | Код и программирование |
- Получите API ключ на platform.deepseek.com
- Создайте провайдера с типом DeepSeek
| Модель | Контекст |
|---|---|
| kimi-k2 | 200K токенов |
| moonshot-v1-128k | 128K токенов |
- Получите API ключ на platform.moonshot.cn
- Создайте провайдера с типом Kimi
Внимание: При использовании любого облачного провайдера все данные из промптов передаются третьим лицам: системные инструкции, RAG-контекст из базы знаний, сообщения пользователей. При большом трафике провайдер со временем получит практически всю вашу базу данных через RAG-фрагменты. Подробнее: Data-Privacy
Если конфиденциальность данных критична (каталоги товаров, клиентская база, know-how), используйте локальный LLM (LLM_BACKEND=vllm).
- Перейдите на вкладку LLM
- Выберите бэкенд "Cloud AI"
- Выберите провайдера из списка
- Провайдер будет использоваться для всех запросов
- В заголовке чата есть выпадающий список LLM
- Выберите конкретного провайдера
- Сообщения будут обрабатываться выбранным провайдером
В настройках бота:
-
llm_backend:cloud:{provider_id} - Или выберите из выпадающего списка
← VLESS-Proxy | API-Reference →