Routage des fournisseurs
Un modèle est souvent servi par plusieurs fournisseurs, et provider.type épingle une requête à l’un d’eux. Quels fournisseurs existent et pourquoi en épingler un sont traités dans Routage des fournisseurs ; cette page est le contrat de champ par protocole.
Emplacement du champ
Le champ ne se place pas au même endroit selon le protocole :
Parmi les modèles d’image, seul openai/gpt-image-2 est aujourd’hui servi par plusieurs fournisseurs (azure_foundry et openai) ; les autres sont mono-fournisseur, et en désigner un autre renvoie 400 provider_type_unavailable. À noter aussi : les modèles d’image Gemini ont deux points d’entrée — sur /v1/images/generations le champ du corps fonctionne, sur le generateContent natif de Gemini il est ignoré.
Le passer dans le corps de la requête
extra_body doit être une clé littérale du corps JSON, avec provider imbriqué dedans :
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" }
}
}'Avec les SDK OpenAI officiels, extra_body doit être présent comme clé littérale dans le corps de la requête. Le SDK TypeScript l’envoie tel qu’il est écrit dans l’objet de paramètres. L’argument extra_body= du SDK Python fusionne son contenu à la racine du corps : la clé doit donc être imbriquée un niveau plus profond, ou transmise via un en-tête.
Le protocole natif Gemini ignore extra_body.provider dans le corps — la requête aboutit, la contrainte ne s’applique tout simplement pas, sans erreur. Sur ce protocole, utilisez l’en-tête ci-dessous.
Le passer dans un en-tête
X-OfoxAI-Provider-Type fonctionne sur tous les protocoles texte, Gemini compris, et convient aux intégrations qui ne peuvent pas modifier le corps de la requête :
curl https://api.ofox.io/gemini/v1beta/models/google/gemini-3.8-flash:generateContent \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "X-OfoxAI-Provider-Type: vertex" \
-H "Content-Type: application/json" \
-d '{
"contents": [{ "parts": [{ "text": "..." }] }]
}'Là où les deux sont pris en charge, l’en-tête et le champ du corps sont équivalents. L’API vidéo n’a pas de forme d’en-tête — voir Video API · Routage des fournisseurs.
Erreurs
Quels fournisseurs indiquer
La liste complète, et comment savoir quels fournisseurs servent un modèle donné, figurent dans Routage des fournisseurs.