Skip to Content
DocsПродвинутые функцииАварийное переключение

Аварийное переключение

В provider.fallback перечисляются резервные модели, которые пробуются по порядку, когда основная модель падает на стороне провайдера.

Настройка

fallback принимает массив идентификаторов моделей и находится на одном уровне с type внутри provider. Не более 3 моделей; при превышении запрос возвращает 400.

Terminal
curl https://api.ofox.io/v1/chat/completions \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic/claude-sonnet-5", "messages": [{ "role": "user", "content": "..." }], "extra_body": { "provider": { "fallback": ["openai/gpt-5.5", "google/gemini-2.5-pro"] } } }'

В официальных SDK OpenAI extra_body должен присутствовать в теле запроса как буквальный ключ. TypeScript SDK отправляет его ровно так, как он записан в объекте параметров. Аргумент extra_body= в Python SDK сливает своё содержимое с верхним уровнем тела, поэтому ключ нужно вложить на уровень глубже либо передать через заголовок запроса.

Что вызывает переключение

Переключение покрывает только сбои, произошедшие после того, как маршрутизация выбрала канал:

СитуацияПоведение
Вышестоящий провайдер возвращает ошибкуПереключается — модели из списка пробуются по порядку, возвращается первый успешный ответ
Сбой на этапе маршрутизации (модели не существует либо закреплённый провайдер её не обслуживает)Переключения нет — запрос завершается сразу

Вторую строку стоит проговорить прямо: если закрепить provider.type за провайдером, который не обслуживает модель, вернётся 400 provider_type_unavailable, а если указать несуществующую модель — 404 model_not_found. Ни то, ни другое до списка резервных моделей не доходит. Какие именно ошибки провайдера вызывают переключение, определяется поведением шлюза, а не фиксированным списком.

Сочетание с закреплённым провайдером

fallback и type можно передавать вместе: type ограничивает, где выполняется основная модель, а fallback отвечает за то, что произойдёт при её сбое:

{ "model": "anthropic/claude-sonnet-5", "messages": [{ "role": "user", "content": "..." }], "extra_body": { "provider": { "type": "bedrock", "fallback": ["openai/gpt-5.5"] } } }

Полный справочник полей — в разделе Маршрутизация провайдеров.

Частые ошибки

error.typeКогда возникает
invalid_request_errorВ списке fallback больше 3 моделей.

Рекомендации

  1. Берите резервные модели сопоставимого уровня — чтобы качество вывода после переключения не менялось.
  2. Резерв от другого производителя — модели одного производителя часто становятся недоступны одновременно.
  3. Следите за частотой срабатываний — частые переключения означают, что основную модель пора менять.
Last updated on