Переход на Waibee
Роутер говорит на двух знакомых языках, поэтому переход это правка настроек клиента, а не переписывание кода. Ниже: что именно меняется и на что обратить внимание.
## С прямого OpenAI
```diff lang="python"
client = OpenAI(
- base_url="https://api.openai.com/v1",
- api_key=os.environ["OPENAI_API_KEY"],
+ base_url="https://api.waibee.com/v1",
+ api_key=os.environ["WAIBEE_API_KEY"],
)
response = client.chat.completions.create(
- model="gpt-5.2",
+ model="openai/gpt-5.2",
messages=[{"role": "user", "content": "Привет!"}],
)
```
Что учесть:
- **Имя модели с префиксом провайдера.** `gpt-5.2` без префикса отклоняется с `422`, нужен `openai/gpt-5.2`. Точные идентификаторы в `GET /v1/models`.
- **Модели других вендоров доступны тем же кодом.** Тот же клиент вызывает `anthropic/...` и `google/...`, менять SDK не нужно.
- **`stream_options` не требуется.** Счётчики в стриминге приходят сами, в последнем чанке перед `[DONE]`.
## С прямого Anthropic
```diff lang="python"
client = anthropic.Anthropic(
- base_url="https://api.anthropic.com",
- api_key=os.environ["ANTHROPIC_API_KEY"],
+ base_url="https://api.waibee.com",
+ api_key=os.environ["WAIBEE_API_KEY"],
)
```
Что учесть:
- **Base URL без `/v1`:** SDK добавляет путь сам.
- **Короткие имена моделей Claude работают** (`claude-sonnet-4.6`), но с полным идентификатором вы точно знаете, какая модель отвечает.
- **`cache_control`, `thinking`, `output_config` и блоки `document` проходят как есть.** Уровень усилий `max` доступен только на этом эндпоинте.
## С другого шлюза
Если клиент уже настроен на OpenAI-совместимый шлюз, меняется адрес и ключ:
| Настройка | Значение |
|---|---|
| Base URL | `https://api.waibee.com/v1` для Chat Completions, `https://api.waibee.com` для Messages |
| API key | `sk_live_...` из консоли Waibee |
| Идентификатор модели | `<провайдер>/<модель>` из `GET /v1/models` |
Чего в роутере нет, если вы этим пользовались:
- **Полей маршрутизации в теле запроса** (списки провайдеров, порядок, fallback-цепочки). Выбор модели это либо явный идентификатор, либо [Autorouting](/router/autorouting/).
- **Части серверных инструментов провайдера.** Веб-поиск работает на всех трёх эндпоинтах и выполняется роутером; загрузка страниц и выполнение кода отклоняются с `feature_not_supported`, см. [Вызов инструментов](/router/tool-calling/).
- **Поля стоимости в ответе.** Считайте по `usage` и ценам каталога, см. [Токены и usage](/router/usage/).
## Проверка после переключения
```bash frame="terminal"
# 1. Ключ и доступ к каталогу
curl -s https://api.waibee.com/v1/models \
-H "Authorization: Bearer $WAIBEE_API_KEY" | jq -r '.data[].id' | head
# 2. Один запрос на той модели, которую использует ваш код
curl -s https://api.waibee.com/v1/chat/completions \
-H "Authorization: Bearer $WAIBEE_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5.2","messages":[{"role":"user","content":"ping"}]}' | jq '.model, .usage'
```
Дальше стоит прогнать свои интеграционные тесты: формат ответов совпадает с привычным, поэтому расхождения обычно всплывают только в именах моделей и в обработке ошибок. Коды и форматы ошибок собраны в [Ошибках](/router/errors/).
## Готовые рецепты для инструментов
Для популярных клиентов настройка уже описана: [Claude Code](/router/integrations/claude-code/), [OpenCode](/router/integrations/opencode/), [pi](/router/integrations/pi/), [Hermes Agent](/router/integrations/hermes/), [OpenAI-совместимые](/router/integrations/openai-compatible/) и [Anthropic-совместимые](/router/integrations/anthropic-compatible/) клиенты.
Роутер говорит на двух знакомых языках, поэтому переход это правка настроек клиента, а не переписывание кода. Ниже: что именно меняется и на что обратить внимание.
С прямого OpenAI
Заголовок раздела «С прямого OpenAI»client = OpenAI( base_url="https://api.openai.com/v1", api_key=os.environ["OPENAI_API_KEY"], base_url="https://api.waibee.com/v1", api_key=os.environ["WAIBEE_API_KEY"],)
response = client.chat.completions.create( model="gpt-5.2", model="openai/gpt-5.2", messages=[{"role": "user", "content": "Привет!"}],)Что учесть:
- Имя модели с префиксом провайдера.
gpt-5.2без префикса отклоняется с422, нуженopenai/gpt-5.2. Точные идентификаторы вGET /v1/models. - Модели других вендоров доступны тем же кодом. Тот же клиент вызывает
anthropic/...иgoogle/..., менять SDK не нужно. stream_optionsне требуется. Счётчики в стриминге приходят сами, в последнем чанке перед[DONE].
С прямого Anthropic
Заголовок раздела «С прямого Anthropic»client = anthropic.Anthropic( base_url="https://api.anthropic.com", api_key=os.environ["ANTHROPIC_API_KEY"], base_url="https://api.waibee.com", api_key=os.environ["WAIBEE_API_KEY"],)Что учесть:
- Base URL без
/v1: SDK добавляет путь сам. - Короткие имена моделей Claude работают (
claude-sonnet-4.6), но с полным идентификатором вы точно знаете, какая модель отвечает. cache_control,thinking,output_configи блокиdocumentпроходят как есть. Уровень усилийmaxдоступен только на этом эндпоинте.
С другого шлюза
Заголовок раздела «С другого шлюза»Если клиент уже настроен на OpenAI-совместимый шлюз, меняется адрес и ключ:
| Настройка | Значение |
|---|---|
| Base URL | https://api.waibee.com/v1 для Chat Completions, https://api.waibee.com для Messages |
| API key | sk_live_... из консоли Waibee |
| Идентификатор модели | <провайдер>/<модель> из GET /v1/models |
Чего в роутере нет, если вы этим пользовались:
- Полей маршрутизации в теле запроса (списки провайдеров, порядок, fallback-цепочки). Выбор модели это либо явный идентификатор, либо Autorouting.
- Части серверных инструментов провайдера. Веб-поиск работает на всех трёх эндпоинтах и выполняется роутером; загрузка страниц и выполнение кода отклоняются с
feature_not_supported, см. Вызов инструментов. - Поля стоимости в ответе. Считайте по
usageи ценам каталога, см. Токены и usage.
Проверка после переключения
Заголовок раздела «Проверка после переключения»# 1. Ключ и доступ к каталогуcurl -s https://api.waibee.com/v1/models \ -H "Authorization: Bearer $WAIBEE_API_KEY" | jq -r '.data[].id' | head
# 2. Один запрос на той модели, которую использует ваш кодcurl -s https://api.waibee.com/v1/chat/completions \ -H "Authorization: Bearer $WAIBEE_API_KEY" -H "Content-Type: application/json" \ -d '{"model":"openai/gpt-5.2","messages":[{"role":"user","content":"ping"}]}' | jq '.model, .usage'Дальше стоит прогнать свои интеграционные тесты: формат ответов совпадает с привычным, поэтому расхождения обычно всплывают только в именах моделей и в обработке ошибок. Коды и форматы ошибок собраны в Ошибках.
Готовые рецепты для инструментов
Заголовок раздела «Готовые рецепты для инструментов»Для популярных клиентов настройка уже описана: Claude Code, OpenCode, pi, Hermes Agent, OpenAI-совместимые и Anthropic-совместимые клиенты.