Перейти к основному содержанию
OrcaRouter позволяет сохранить стратегию маршрутизации как именованный маршрутизатор. Вызывайте его из кода как orcarouter/{name}, и OrcaRouter во время запроса разрешит его в конкретную модель в соответствии с настроенными вами правилами. Это полезно, когда вы хотите:
  • Изменять поведение маршрутизации без передеплоя приложения (измените маршрутизатор в дашборде; ваш код остаётся прежним).
  • Позволить разным командам или сервисам выбирать собственную политику маршрутизации независимо от приложения, вызывающего API.
  • Использовать логику маршрутизации, слишком сложную, чтобы встраивать её в extra_body.

Использование маршрутизатора

response = client.chat.completions.create(
    model="orcarouter/production-chat",
    messages=[...],
)
Чтобы узнать, в какую конкретную модель разрешился маршрутизатор, прочитайте заголовки ответа 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 — см. Автоматический маршрутизатор. Его можно использовать сразу без какой-либо настройки.