Перейти к содержимому

Переход на Waibee

Роутер говорит на двух знакомых языках, поэтому переход это правка настроек клиента, а не переписывание кода. Ниже: что именно меняется и на что обратить внимание.

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].
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-совместимые клиенты.