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

Autorouting

Autorouting это режим, в котором модель выбирает не клиент, а роутер. Вместо конкретного идентификатора в поле model передаётся waibee/auto, и дальше роутер сам решает, какая модель закроет задачу.

autorouting.sh
curl https://api.waibee.com/v1/chat/completions \
-H "Authorization: Bearer $WAIBEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "waibee/auto",
"messages": [{ "role": "user", "content": "Ответь одним словом: ок" }]
}'

В ответе поле model содержит ту модель, которая реально отработала, а не waibee/auto:

{
"model": "z-ai/glm-5",
"choices": [{ "index": 0, "finish_reason": "stop",
"message": { "role": "assistant", "content": "Ок" } }],
"usage": { "prompt_tokens": 14, "completion_tokens": 4, "total_tokens": 18 }
}

Работает на всех трёх эндпоинтах: POST /v1/chat/completions, POST /v1/messages и POST /v1/responses.

  • Не нужно следить за каталогом. Новые модели появляются, старые уходят, идентификаторы меняются. С waibee/auto эта работа уходит на сторону роутера.
  • Простые запросы не платят за флагман. Короткий вопрос уезжает на быструю дешёвую модель, сложная задача на сильную.
  • Требования запроса учитываются автоматически. Картинка на входе, structured outputs, вызов инструментов: роутер отбирает модели, которые это поддерживают.

Когда лучше указать модель явно: воспроизводимость (тесты, замеры, сравнение промптов), жёсткое требование к конкретному семейству, тонко подогнанный под модель промпт.

Роутер смотрит на сам запрос:

Сигнал Как влияет
Текст запроса и системного промпта Оценка сложности задачи: короткая справка или проектирование
Вложения Картинка или аудио на входе оставляют только модели с нужной модальностью
tools Нужна поддержка вызова инструментов
reasoning_effort или thinking Нужна reasoning-модель
response_format Нужна поддержка structured outputs
Маркеры cache_control Нужна модель с кэшированием промптов
Размер запроса Модели с недостаточным окном контекста отбрасываются

Выбор идёт среди моделей, разрешённых вашей группе для автоподбора. Это отдельная настройка: модель, которую нельзя запросить по имени, автоподбор всё равно может выбрать, и наоборот.

На практике это выглядит так: «ответь одним словом» уезжает на быструю дешёвую модель, «спроектируй распределённую систему платежей» на сильную, а запрос с картинкой на ту, которая принимает картинки. Какая модель отработала в конкретном случае, всегда видно в поле model ответа.

С кэшированием промптов роутер старается удерживать уже выбранную модель: кэш живёт на стороне конкретной модели, и переход на другую обнулил бы попадания.

Все относятся только к waibee/auto и приходят с кодом 422.

Код Когда
auto_routing_no_match После отбора по возможностям и политикам не осталось ни одной подходящей модели
auto_routing_request_too_large Запрос не влезает в окно контекста ни одной из доступных моделей
auto_routing_caching_unavailable Запрошено кэширование промптов, но подходящей модели с его поддержкой нет
auto_routing_missing_context Внутренняя ошибка подбора: повторите запрос, при повторении обратитесь в поддержку

В extra приходят детали отказа: на каком фильтре опустел список моделей, какие возможности требовались и что с этим делать.

422
{
"error": {
"code": "auto_routing_request_too_large",
"message": "No model matches the auto-routing requirements",
"extra": {
"required_capabilities": [],
"filter_step_dropped_at": "context",
"pool_size_initial": 73,
"pool_size_after_filter": 0,
"recommendation": "The request is too large...",
"auto_routing_decision_id": "e0e62376-55c2-4e06-98cb-90dc6640d451",
"tier_attempted": "standard"
}
}
}

Если такое приходит регулярно, это сигнал указать модель явно, см. Модели. auto_routing_decision_id пригодится при обращении в поддержку.

  • Стоимость запроса зависит от выбранной модели. Считать её нужно по паре model и usage из ответа, см. Токены и usage.
  • Там, где нужна воспроизводимость, указывайте модель явно. Тесты, замеры и сравнение промптов имеют смысл на фиксированной модели.