Guides
Canaux et routage des fournisseurs
Épinglez un modèle à un fournisseur précis avec X-Felo-Channel et comprenez le routage par défaut, la tarification et le fallback.
Un modèle peut être servi par plusieurs fournisseurs upstream. Par défaut, Felo choisit un fournisseur pour vous. Lorsque vous avez besoin d'un fournisseur spécifique, envoyez l'en-tête de requête X-Felo-Channel avec un ou plusieurs codes de canal publics.
Endpoints pris en charge
X-Felo-Channel est accepté sur chaque endpoint de génération du Model API :
| Endpoint | Protocole |
|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions |
POST /api/v1/responses | OpenAI Responses |
POST /api/v1/messages | Anthropic Messages |
POST /api/v1/images/generations | Génération d'images |
POST /api/v1/videos/generations | Génération vidéo |
POST /api/v1/decisions | Décisions |
Il ne s'applique pas au Data API (/v1/beta) ni aux API Felo (/v2).
Valeurs de l'en-tête
La valeur est une liste ordonnée, séparée par des virgules, de codes de canal publics :
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultRègles issues de la spécification publique du Model API :
- Omettez l'en-tête pour utiliser la route par défaut.
defaultn'est une valeur valide que lorsqu'elle est utilisée seule. Ne la combinez pas avec des codes de canal.- Les codes de canal publics proviennent du champ
channels[].codedu modèle dans le catalogue. Utilisez le code, pas le nom d'affichage du fournisseur. - Seuls les canaux publiés et exécutables sont routables.
Routage par défaut
Lorsque vous omettez l'en-tête, ou envoyez default seul, la plateforme choisit le fournisseur. En mode wallet, elle parcourt à l'envers l'ordre effectif des canaux publics du modèle, ignore les canaux non publiés ou indisponibles et sélectionne le fournisseur du premier canal disponible. Elle peut inclure des endpoints disponibles de ce fournisseur avec le même ID de modèle upstream et le même niveau de service.
Vous n'avez pas besoin d'envoyer X-Felo-Channel: default ; omettre l'en-tête est la façon normale d'utiliser la route par défaut.
Routage explicite
Lorsque vous envoyez des codes de canal, ils sont validés dans l'ordre où vous les listez. Seul le groupe de fournisseurs du premier canal est soumis. Il n'y a pas de repli automatique vers un autre fournisseur.
Cela signifie qu'une liste de canaux est une sélection, pas une politique de nouvelle tentative. Si vous avez besoin de basculement, implémentez-le dans votre application : envoyez une nouvelle requête avec un autre canal après l'échec du premier.
Les en-têtes fournisseur hérités ne peuvent pas remplacer X-Felo-Channel. Si un autre en-tête de votre client demande aussi un fournisseur, X-Felo-Channel a la priorité.
Tarification
Chaque canal public publie ses propres tarifs standard et multiplicateur de remise. Le prix affiché pour un fournisseur sur la page de détail du modèle est le prix client de ce canal. Le canal que vous épinglez détermine le fournisseur dont le tarif s'applique.
Avant d'épingler un canal pour une charge de travail à fort volume, comparez les lignes fournisseurs sur la page des modèles et lisez Modèles et tarifs.
Trouver un code de canal
- Ouvrez la page de détail du modèle et trouvez le tableau des fournisseurs.
- Faites correspondre le fournisseur à son code de canal public. Le code est l'identifiant stable utilisé par l'API.
- Si vous lisez directement le catalogue, utilisez
channels[].codeet vérifiezrunnable.
Par exemple, claude-haiku-5-5 publie plusieurs canaux, dont anthropic (celui par défaut), azure, google-vertex-global et claude-cc. La ligne claude-cc affiche sa propre remise : l'épingler change donc à la fois le fournisseur et le tarif.
Exemples
Chat Completions épinglé à un canal :
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Anthropic Messages avec le même canal :
curl https://openapi.felo.ai/api/v1/messages \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Routage par défaut, sans en-tête de routage :
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'