Маршрутизация провайдеров
Одну и ту же модель часто обслуживает несколько провайдеров: например, bytedance/seedance-2.0 приходит и от volcengine, и от byteplus. ofox выбирает провайдера автоматически; provider.type закрепляет запрос за конкретным провайдером.
Маршрутизация по умолчанию
Если поле provider не передано, ofox распределяет запрос с весами между каналами, которые в данный момент обслуживают модель. Какой провайдер обработает конкретный запрос, предсказать нельзя.
Закрепление провайдера
Укажите имя провайдера в поле type. Расположение поля различается для двух типов моделей:
| Тип модели | Путь поля |
|---|---|
| Чат-модели | extra_body.provider.type |
| Видеомодели | provider.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",
"messages": [{ "role": "user", "content": "..." }],
"extra_body": {
"provider": { "type": "bedrock" }
}
}'В официальных SDK OpenAI extra_body должен присутствовать в теле запроса как буквальный ключ. TypeScript SDK отправляет его ровно так, как он записан в объекте параметров. Аргумент extra_body= в Python SDK сливает своё содержимое с верхним уровнем тела, поэтому ключ нужно вложить на уровень глубже либо передать через заголовок запроса.
Доступные провайдеры
Ниже перечислены провайдеры, которые ofox поддерживает сейчас. Короткие имена в скобках равнозначны полным; допустимы оба варианта:
| Провайдер | Описание |
|---|---|
openai | OpenAI :официальный API семейства GPT |
anthropic | Anthropic :официальный API семейства Claude |
gemini | Google AI :официальный API семейства Gemini |
azure_foundry (foundry) | Azure AI Foundry :платформа хостинга моделей в Microsoft Azure |
aws_bedrock (bedrock) | Amazon Bedrock :сервис хостинга моделей в AWS |
google_vertex (vertex) | Vertex AI :платформа хостинга моделей в Google Cloud |
aliyun | Alibaba Cloud Bailian :платформа модельных сервисов Alibaba Cloud |
volcengine | Volcengine Ark :платформа ByteDance для материкового Китая |
byteplus | BytePlus :платформа ByteDance для рынков вне материкового Китая |
deepseek | DeepSeek :официальный API семейства DeepSeek |
moonshot | Moonshot AI :официальный API семейства Kimi |
zhipu | Zhipu AI :официальный API семейства GLM |
minimax | MiniMax :официальный API семейства MiniMax |
grok | xAI :официальный API семейства Grok |
jina | Jina AI :модели эмбеддингов и переранжирования |
tencent | Tencent Cloud Hunyuan :платформа модельных сервисов Tencent Cloud |
Не каждый провайдер обслуживает каждую модель. Кто обслуживает конкретную модель и какие протоколы каждый из них поддерживает, показано на странице этой модели в каталоге моделей . Те же данные доступны программно как provider_cards[] из GET /v2/models/catalog/{provider}/{slug}?include=provider_price.
Чат-модели
Чат-модели распределены по большинству провайдеров из таблицы выше. Точное соответствие и поддержка протоколов указаны на странице каждой модели.
Видеомодели
Семейство bytedance/seedance-* обслуживают два провайдера ниже, и их политики контента различаются:
| Провайдер | Описание | Политика контента |
|---|---|---|
volcengine | Volcengine Ark, платформа ByteDance для материкового Китая | Стандартная модерация |
byteplus | BytePlus, платформа ByteDance для рынков вне материкового Китая | Допускает контент, подходящий не для всех аудиторий (NSFW) |
byteplus разрешает seedance создавать контент, подходящий не для всех аудиторий (NSFW), тогда как volcengine применяет стандартную модерацию. Если такой контент нужен, provider.type: "byteplus" необходимо указывать явно; иначе взвешенное распределение может направить запрос в volcengine, где модерация его отклонит.
Частые ошибки
error.type | Когда возникает |
|---|---|
invalid_provider_type | Значение отсутствует в перечислении провайдеров: опечатка в имени или устаревшее написание. |
provider_type_unavailable | Провайдер существует, но эту модель не обслуживает. Для чат-моделей в сообщении об ошибке также перечислены те, кто её обслуживает. |