Маршрутизация провайдеров
Одну и ту же модель часто обслуживает несколько провайдеров: например, bytedance/seedance-2.0 приходит и от volcengine, и от byteplus. ofox выбирает провайдера автоматически; provider.type закрепляет запрос за конкретным провайдером.
Маршрутизация по умолчанию
Если поле provider не передано, ofox распределяет запрос с весами между каналами, которые в данный момент обслуживают модель. Какой провайдер обработает конкретный запрос, предсказать нельзя.
Закрепление провайдера
Укажите имя провайдера в поле type. Расположение поля различается для двух типов моделей:
Нативный протокол Gemini игнорирует extra_body.provider в теле — запрос выполняется, ограничение просто не применяется, ошибки нет. В этом протоколе используйте заголовок X-OfoxAI-Provider-Type. Контракт поля по протоколам — в разделе API · Маршрутизация провайдеров.
Чат-модели
cURL
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.5",
"messages": [{ "role": "user", "content": "..." }],
"extra_body": {
"provider": { "type": "bedrock" }
}
}'В официальных SDK OpenAI extra_body должен присутствовать в теле запроса как буквальный ключ. TypeScript SDK отправляет его ровно так, как он записан в объекте параметров. Аргумент extra_body= в Python SDK сливает своё содержимое с верхним уровнем тела, поэтому ключ нужно вложить на уровень глубже либо передать через заголовок запроса.
Доступные провайдеры
Ниже перечислены провайдеры, которые ofox поддерживает сейчас. Короткие имена в скобках равнозначны полным; допустимы оба варианта:
Не каждый провайдер обслуживает каждую модель. Кто обслуживает конкретную модель и какие протоколы каждый из них поддерживает, показано на странице этой модели в каталоге моделей . Те же данные доступны программно как provider_cards[] из GET /v2/models/catalog/{provider}/{slug}?include=provider_price.
Чат-модели
Чат-модели распределены по большинству провайдеров из таблицы выше. Точное соответствие и поддержка протоколов указаны на странице каждой модели.
Видеомодели
Семейство bytedance/seedance-* обслуживают два провайдера ниже, и их политики контента различаются:
byteplus разрешает seedance создавать контент, подходящий не для всех аудиторий (NSFW), тогда как volcengine применяет стандартную модерацию. Если такой контент нужен, provider.type: "byteplus" необходимо указывать явно; иначе взвешенное распределение может направить запрос в volcengine, где модерация его отклонит.