Enrutamiento de proveedores
Un mismo modelo suele estar servido por más de un proveedor: bytedance/seedance-2.0, por ejemplo, llega tanto de volcengine como de byteplus. ofox selecciona un proveedor de forma automática; provider.type fija la petición a uno concreto.
Enrutamiento por defecto
Cuando no se envía el campo provider, ofox reparte la petición con un peso entre los canales que sirven ese modelo en ese momento. Qué proveedor atiende una petición concreta no es predecible.
Fijar un proveedor
Indica el nombre del proveedor en el campo type. La ubicación del campo difiere según el tipo de modelo:
| Tipo de modelo | Ubicación del campo |
|---|---|
| Modelos de chat | extra_body.provider.type |
| Modelos de vídeo | provider.type |
El protocolo nativo de Gemini ignora extra_body.provider en el cuerpo: la petición se completa, la restricción sencillamente no se aplica y no hay ningún error. En ese protocolo usa la cabecera X-OfoxAI-Provider-Type. El contrato de campo por protocolo está en API · Enrutamiento de proveedores.
Modelos de chat
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" }
}
}'Con los SDK oficiales de OpenAI, extra_body debe estar presente como clave literal en el cuerpo de la petición. El SDK de TypeScript lo envía tal como se escribe en el objeto de parámetros. El argumento extra_body= del SDK de Python fusiona su contenido en el nivel superior del cuerpo, por lo que la clave debe anidarse un nivel más, o enviarse como cabecera.
Proveedores disponibles
Los proveedores que ofox admite actualmente se listan a continuación. Los nombres cortos, entre paréntesis, equivalen al nombre completo; se aceptan ambos:
| Proveedor | Descripción |
|---|---|
openai | OpenAI :API oficial de la familia GPT |
anthropic | Anthropic :API oficial de la familia Claude |
gemini | Google AI :API oficial de la familia Gemini |
azure_foundry (foundry) | Azure AI Foundry :plataforma de alojamiento de modelos en Microsoft Azure |
aws_bedrock (bedrock) | Amazon Bedrock :servicio de alojamiento de modelos en AWS |
google_vertex (vertex) | Vertex AI :plataforma de alojamiento de modelos en Google Cloud |
aliyun | Alibaba Cloud Bailian :plataforma de servicios de modelos de Alibaba Cloud |
volcengine | Volcengine Ark :plataforma de ByteDance para China continental |
byteplus | BytePlus :plataforma de ByteDance para el resto del mundo |
deepseek | DeepSeek :API oficial de la familia DeepSeek |
moonshot | Moonshot AI :API oficial de la familia Kimi |
zhipu | Zhipu AI :API oficial de la familia GLM |
minimax | MiniMax :API oficial de la familia MiniMax |
grok | xAI :API oficial de la familia Grok |
jina | Jina AI :modelos de embedding y reranking |
tencent | Tencent Cloud Hunyuan :plataforma de servicios de modelos de Tencent Cloud |
No todos los proveedores sirven todos los modelos. Cuáles sirven un modelo concreto —y qué protocolos admite cada uno— aparece en la página de ese modelo dentro del catálogo de modelos . Los mismos datos están disponibles por código como provider_cards[], que devuelve GET /v2/models/catalog/{provider}/{slug}?include=provider_price.
Modelos de chat
Los modelos de chat se reparten entre la mayoría de los proveedores anteriores. La correspondencia exacta y el soporte de protocolos figuran en la página de cada modelo.
Modelos de vídeo
La familia bytedance/seedance-* está servida por los dos proveedores siguientes, cuyas políticas de contenido difieren:
| Proveedor | Descripción | Política de contenido |
|---|---|---|
volcengine | Volcengine Ark, plataforma de ByteDance para China continental | Moderación estándar |
byteplus | BytePlus, plataforma de ByteDance para el resto del mundo | Permite contenido no apto para todos los públicos (NSFW) |
byteplus permite que seedance genere contenido no apto para todos los públicos (NSFW), mientras que volcengine aplica moderación estándar. Debe indicarse provider.type: "byteplus" de forma explícita cuando se requiera ese contenido; de lo contrario, el reparto ponderado puede enviar la petición a volcengine, donde la moderación la rechazará.
Errores habituales
error.type | Condición |
|---|---|
invalid_provider_type | El valor no está en la enumeración de proveedores: nombre mal escrito o escritura ya retirada. |
provider_type_unavailable | El proveedor existe pero no sirve este modelo. En los modelos de chat el mensaje de error lista además los que sí lo sirven. |