BYOK и провайдеры LLM
AiHummer никогда не требует платной модели. Из коробки он работает на свободных и локальных моделях и на транспорте через подписку Codex/ChatGPT, а если модель не подключена вовсе — рантайм откатывается на детерминированный mock, чтобы платформа всё равно запускалась и оставалась тестируемой. Когда же нужна конкретная модель, вы подключаете её сами — либо как конфигурацию на весь процесс, либо на арендатора через BYOK («bring your own key»).
Поддерживаемые провайдеры LLM
AiHummer общается с любым провайдером, у которого есть chat-API в стиле OpenAI (нативно), с остальными провайдерами — через внешний LLM-gateway, а также поддерживает транспорт через подписку ChatGPT. На практике это покрывает:
| Провайдер | Как подключается | Примечания |
|---|---|---|
| OpenAI | Нативный OpenAI-совместимый путь (AIHUMMER_OPENAI_*) |
|
| Любой эндпоинт стандарта OpenAI-API | Тот же нативный путь: AIHUMMER_OPENAI_BASE_URL |
Локальные модели, OpenRouter, OpenAI-совместимый API Gemini и т. п. |
| Anthropic | Через LLM-gateway (AIHUMMER_LLM_*) |
Модели Claude; нативного клиента Anthropic нет — sidecar-gateway держит ключ сам |
| Транспорт Codex / подписка ChatGPT | Транспорт на базе подписки (AIHUMMER_CODEX_*) |
Использует подписку ChatGPT вместо тарифицируемого API-ключа |
[!WARNING] Платный API модели никогда не обязателен. AiHummer работает на свободных и локальных моделях и на транспорте через подписку Codex/ChatGPT, а если модель не настроена — рантайм использует детерминированный mock: gateway всё равно запускается и отвечает. BYOK и платные ключи полностью опциональны.
Подключение модели через настройки
Ключи модели — это параметры каталога настроек (хранятся в БД): задавайте их
в веб-админке («Управление → Настройки») или командой aihummer settings set,
а не в gateway.env. Есть два независимых пути подключения — не смешивайте
их переменные.
(а) Нативный OpenAI-совместимый путь. Gateway сам обращается к OpenAI-совместимому эндпоинту и сам передаёт ключ:
aihummer settings set AIHUMMER_OPENAI_API_KEY sk-...
aihummer settings set AIHUMMER_OPENAI_BASE_URL https://api.openai.com/v1
aihummer settings set AIHUMMER_OPENAI_MODEL gpt-4o-mini
Тот же путь работает для локального OpenAI-совместимого сервера, OpenRouter или
OpenAI-совместимого эндпоинта Gemini — просто укажите его AIHUMMER_OPENAI_BASE_URL.
(б) Путь через внешний LLM-gateway (sidecar). Запросы уходят на ваш LLM-gateway, который сам держит ключи провайдеров — API-ключ через AiHummer не проходит вовсе:
aihummer settings set AIHUMMER_LLM_GATEWAY_URL http://127.0.0.1:8090
aihummer settings set AIHUMMER_LLM_PROVIDER anthropic
aihummer settings set AIHUMMER_LLM_MODEL claude-sonnet-4-5
[!WARNING] Пути не комбинируются: сочетание
AIHUMMER_LLM_GATEWAY_URLсAIHUMMER_OPENAI_API_KEYничего не даёт — на gateway-пути ключ не передаётся, sidecar использует собственные ключи.
Если не настроен ни один путь, используется детерминированный mock.
BYOK: ключи на арендатора
Если переменные окружения настраивают одну модель на весь процесс, то BYOK позволяет каждому арендатору задать свои собственные доступы к LLM. Ключи BYOK управляются через admin API:
GET /v1/admin/byok
POST /v1/admin/byok
Ключи BYOK хранятся в зашифрованном vault, как и любой другой доступ — они никогда не пишутся в логи и не попадают в контекст модели. Именно это позволяет multitenant-развёртыванию полностью разделять биллинг моделей и ключевой материал между клиентами.
Что выбрать: общие настройки или BYOK
- Используйте настройки
AIHUMMER_OPENAI_*/AIHUMMER_LLM_*для одно-арендаторной или дефолтной модели, которую должен использовать весь gateway. - Используйте BYOK, когда разным арендаторам нужны разные ключи, разные провайдеры или раздельный биллинг — ключ на арендатора переопределяет дефолт для этого арендатора.
[!TIP] Поскольку принимается любой эндпоинт стандарта OpenAI-API, вы можете указать в
AIHUMMER_OPENAI_BASE_URLлокальный сервер модели, OpenRouter или OpenAI-совместимый эндпоинт Gemini, ничего больше не меняя в AiHummer.
Связь с остальной моделью доступов
Ключи BYOK — это доступы к модели, и они живут в том же зашифрованном vault, что и Connections и общие/персональные секреты. Разница в scope: BYOK отвечает на вопрос какую модель и ключ использует этот арендатор, а scope персональный/общий отвечает под чьими доступами выполняется конкретный вызов инструмента.
Куда дальше
- Персональные и общие доступы
- Connections (OAuth2 на пользователя)
- Введение — принцип «без платных моделей» в контексте.