Маршрутизация и отказоустойчивость

Как выбирается модель и что происходит при сбое поставщика.

routing_strategy

Каждый эндпоинт принимает model (необязательно) и routing_strategy (по умолчанию "auto"):

  • manual — использует точно указанную model. Ошибка model_not_found, если она отсутствует в каталоге.
  • auto — взвешенная оценка качества/стоимости (качество x 0,7, нормализованный штраф за стоимость x 0,3) среди доступных моделей данной категории. Более дешёвый поставщик может таким образом обойти чуть более качественного, но более дорогого.
  • best_quality — сортировка только по оценке качества, по убыванию.
  • cheapest — сортировка только по средней цене, по возрастанию.
  • fastest — сортировка по наблюдаемой средней задержке, по возрастанию.
json
{ "model": "claude-opus-5", "routing_strategy": "manual" }

Автоматическая отказоустойчивость

За исключением режима manual, если первый выбранный кандидат завершается неудачей (сбой поставщика, таймаут, ошибка 5xx), запрос автоматически повторяется со следующим кандидатом в рейтинге — совершенно прозрачно для вас. Вызов завершается неудачей только в том случае, если все совместимые кандидаты потерпели неудачу (503 all_providers_unavailable).

Состояние здоровья поставщиков

Каждый поставщик имеет постоянно отслеживаемый статус: healthy, degraded или down. Поставщик в статусе down исключается из рейтинга (разомкнутая цепь); поставщик в статусе degraded остаётся доступным, но используется в последнюю очередь. Доступно через:

bash
GET /v1/status

Каталог моделей

Полный список доступных моделей по категориям, с ценами и возможностями, можно свободно запросить (без вызова ИИ, бесплатно):

bash
GET /v1/models?category=text
Поставщик, работающий в нескольких категориях (например, OpenAI для текста и изображений), имеет единый статус состояния для всех своих категорий — сбой, затрагивающий только одну категорию, влияет и на другие категории этого поставщика при автоматической маршрутизации.