orcarouter/{name}, и OrcaRouter
во время запроса разрешит его в конкретную модель в соответствии с
настроенными вами правилами.
Это полезно, когда вы хотите:
- Изменять поведение маршрутизации без передеплоя приложения (измените маршрутизатор в дашборде; ваш код остаётся прежним).
- Позволить разным командам или сервисам выбирать собственную политику маршрутизации независимо от приложения, вызывающего API.
- Использовать логику маршрутизации, слишком сложную, чтобы встраивать
её в
extra_body.
Использование маршрутизатора
X-Orca-Router и X-Orca-Resolved-Model — см.
Заголовки ответа. Поле model в самом теле
ответа отражает то, что вернул апстрим (часто простое апстрим-имя, например
gpt-4o-mini-2024-07-18).
Создание маршрутизатора
Маршрутизаторы создаются в дашборде в разделе Routing. Каждый маршрутизатор имеет:- Имя —
{name}вorcarouter/{name}. Должно быть уникальным в пределах вашего рабочего пространства; строчные буквы, цифры,_и-(1-50 символов). Имяorcarouterзарезервировано. - Allowed models — один или несколько glob-шаблонов (разделённых запятыми
или переводами строк, без учёта регистра), ограничивающих, какие модели может
выбрать этот маршрутизатор. Примеры:
openai/*илиopenai/*, anthropic/claude-haiku-*. Пусто — соответствует любой модели, к которой у вашего аккаунта есть доступ. - Strategy — как выбирать среди подходящих моделей. См. Стратегии ниже.
- Mundane models / Hard models — дополнительные списки моделей, используемые только стратегией Adaptive · Gated. См. Adaptive ниже.
- Default model — страховочная модель, используемая, если шаблон не разрешился ни во что.
- Enabled — отключить маршрутизатор без его удаления.
Стратегии
Редактор предоставляет четыре карточки стратегий. Adaptive объединяет два бэкенд-подрежима, что даёт пять значений enum, которые можно сохранить через API.Cheapest
Выбирает модель с наименьшей ценой за токен среди живых кандидатов. По умолчанию для предустановленного маршрутизатораorcarouter/auto. Лучше
всего, когда вы хотите получать самую дешёвую живую чат-модель на каждом
запросе и вам не важна согласованность стиля вывода между вызовами.
Quality
Выбирает модель с наивысшим показателем качества среди живых кандидатов независимо от цены. Лучше всего, когда качество вывода важнее стоимости.Balanced
Выбирает недорогой вариант, всё ещё соответствующий планке качества; если ничего не соответствует планке, возвращается к варианту с наивысшим качеством. По умолчанию для новых маршрутизаторов, которые вы создаёте самостоятельно. Работает без настройки под конкретный маршрутизатор.Adaptive
Контекстный бандит LinUCB для каждого маршрутизатора, обучающийся на вашем реальном продакшен-трафике. На каждый запрос взвешивает качество, стоимость, задержку и надёжность, чтобы выбрать лучшую модель. Новые маршрутизаторы ведут себя как Balanced во время короткого периода «холодного старта» (прогрев по каждой модели), после чего бандит начинает направлять выбор — это ожидаемо, а не баг. Два подрежима:- Standard (enum API:
linucb) — рассматривает каждую модель из Allowed для каждого запроса. Лучше всего, когда трафик примерно однородный и вы хотите, чтобы маршрутизатор находил лучший вариант по всему списку. - Gated (enum API:
gated_adaptive) — запросы сначала классифицируются как обычные или сложные; обычные запросы берутся из меньшего пула Mundane models, сложные — из более сильного пула Hard models, а запросы средней сложности — из полного списка Allowed. Лучше всего, когда ваш трафик смешивает простые и сложные вызовы. Каждый пул пересекается с Allowed models; пустые или непересекающиеся пулы молча возвращаются к полному списку Allowed, так что запросы никогда не остаются без модели. Настройте оба пула (weak_poolиstrong_poolна уровне API — до 2000 символов каждый) в редакторе при выборе Gated.
Предустановленный маршрутизатор: orcarouter/auto
Каждый аккаунт OrcaRouter при регистрации получает маршрутизатор по умолчанию
с именем auto — см. Автоматический маршрутизатор.
Его можно использовать сразу без какой-либо настройки.