Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Routage des fournisseurs et solutions de secours

Endpoints

Routage des fournisseurs et solutions de secours

Choisissez, ordonnez et filtrez les fournisseurs en amont avec l'objet provider, et basculez entre modèles avec le tableau models en cas d'échec.

Essayer dans le playground

De nombreux modèles sont servis par plusieurs fournisseurs en amont, chacun avec son propre prix, sa vitesse et sa politique de données. Par défaut, les requêtes sont réparties entre les fournisseurs selon le prix et la disponibilité, et basculent vers un autre fournisseur en cas d'échec. Utilisez l'objet provider pour modifier ce comportement, et models pour basculer entre différents modèles.

L'objet provider

ChampTypeDescription
orderstring[]Fournisseurs à essayer en premier, dans l'ordre, par ex. ["Anthropic", "Amazon Bedrock"].
allow_fallbacksbooleanfalse empêche la requête d'aller vers des fournisseurs hors de order ou only (true par défaut).
onlystring[]N'autorise que ces fournisseurs.
ignorestring[]N'utilise jamais ces fournisseurs.
sortstring"price", "throughput" ou "latency" à la place de la répartition de charge.
data_collectionstring"deny" exclut les fournisseurs susceptibles de stocker les prompts ou de s'entraîner dessus. "allow" est la valeur par défaut.
require_parametersbooleanN'utilise que les fournisseurs qui prennent en charge tous les paramètres de votre requête (par ex. tools, response_format).
quantizationsstring[]Précisions autorisées, par ex. ["fp8", "bf16"].
max_priceobjectLimites de prix maximales en USD par million de tokens, par ex. { "prompt": 1, "completion": 3 }.
{
  "model": "meta-llama/llama-3.3-70b-instruct",
  "messages": [{ "role": "user", "content": "Hello" }],
  "provider": {
    "order": ["Groq", "Fireworks"],
    "allow_fallbacks": true,
    "data_collection": "deny",
    "sort": "throughput"
  }
}

La variante :nitro est un raccourci pour sort: "throughput", et :floor un raccourci pour sort: "price". Voir Identifiants de modèles.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);

Modèles de secours avec models

Passez une liste de modèles. Si le premier échoue (panne, limite de débit, modération ou erreur de longueur de contexte), le suivant est essayé :

{
  "models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
  "messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
  • model est facultatif quand models est défini. Si vous envoyez les deux, model est essayé en premier.
  • Chaque modèle de la liste doit passer les vérifications de la passerelle avant l'envoi de la requête : il doit exister et être activé, figurer dans la liste de modèles autorisés de votre clé et être inclus dans votre forfait. Un seul modèle qui échoue aux vérifications fait rejeter toute la requête (403 model_not_allowed, 403 plan_required ou 404 model_not_found).
  • Vous n'êtes facturé que pour le modèle qui a répondu, à son propre prix. Le champ model de la réponse indique lequel c'était.

Réponse

{
  "id": "gen-1760000000-route",
  "model": "openai/gpt-5-mini",
  "provider": "OpenAI",
  "choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "..." } }],
  "usage": { "prompt_tokens": 140, "completion_tokens": 60, "total_tokens": 200, "cost": 0.000155 }
}

provider indique quel fournisseur en amont a servi la requête. La consultation d'une génération montre le détail complet du routage.

Erreurs

Si aucun fournisseur ne correspond à vos filtres (par ex. only avec require_parameters), le fournisseur en amont renvoie 404 « No endpoints found ». Les autres erreurs sont les mêmes que pour les Chat completions. Voir Erreurs.