Acheminement

Un point d’accès /v1 pour tous les fournisseurs. Pointez votre client OpenAI vers une autre URL et une clé, avec vos clés et 0 % de majoration.

Lorsque plusieurs fournisseurs peuvent servir un modèle, le routeur choisit selon le prix, la latence et l’état de santé en direct. L’objet provider vous permet de contraindre ce choix.

json
{
  "model": "meta/llama-3.3-70b",
  "messages": [{"role": "user", "content": "Bonjour"}],
  "provider": {
    "only": ["together", "fireworks"],
    "sort": "price",
    "max_price": {"prompt": 0.9}
  }
}

Champs

  • order — essayer ces fournisseurs d’abord, dans cet ordre.
  • only — restreindre à ces fournisseurs.
  • ignore — exclure ces fournisseurs.
  • sort — price, throughput, latency ou exacto (les appels d’outils les plus fiables d’abord, puis les plus rapides, puis les moins chers). Avec des outils et sans tri, Exacto ordonne les points de terminaison dès que l’un d’eux a un taux d’appels d’outils mesuré.
  • max_price — un plafond par SKU, en dollars américains par million de jetons.
  • quantizations — restreindre aux quantifications indiquées. bf16 et int4 ne sont pas le même modèle.
  • require_parameters — uniquement les points d’accès prenant en charge tous les paramètres envoyés.
  • preferred_max_latency — en secondes; les points de terminaison mesurés plus lents sont essayés en dernier, jamais exclus.
  • sort sous la forme {"by": "price", "partition": "none"} — un seul ordre pour tous les modèles de models, plutôt qu’un modèle à la fois.
  • zdr et data_collection — acceptés à false et allow. Exiger l’absence de conservation ou d’entraînement donne un 400 : la conservation de vos invites par un fournisseur, et leur usage pour l’entraînement, relèvent de votre propre entente avec lui, et nous ne les consignons pas. Voir Ce que nous conservons.

N’importe quel modèle gratuit : autonomousrelay/free

Envoyez "model": "autonomousrelay/free" et le routeur choisit au hasard un modèle gratuit parmi ceux qui peuvent répondre à la requête : une sortie texte, une entrée image si vous envoyez une image, une fenêtre de contexte qui contient votre invite, et un modèle vers lequel vous pouvez router (un identifiant BYOK pour son fournisseur, permis par vos garde-fous et vos paramètres de confidentialité). Deux autres modèles gratuits servent de solutions de repli. Le champ model de la réponse nomme celui qui a répondu; vos journaux consignent autonomousrelay/free comme ce que vous avez demandé. S’il n’y en a aucun, la réponse est un 404 qui indique quoi ajouter.

Laisser le routeur choisir : autonomousrelay/auto

Envoyez "model": "autonomousrelay/auto" et le routeur choisit un modèle payant selon ce dont votre requête a besoin (une sortie texte, une entrée image si vous envoyez une image, une fenêtre de contexte suffisante), les modèles vers lesquels vous pouvez router, et un palier de coût, d’après le prix de sortie par million de jetons : low jusqu’à 2 $ (par défaut), medium jusqu’à 10 $, high jusqu’à 30 $, xhigh jusqu’à 60 $, max au-delà. Dans le palier, il prend d’abord le modèle le plus cher, puis le plus récent — le prix est le seul indice de qualité que le catalogue fournit. Deux autres modèles du même palier servent de repli; si le palier n’en offre aucun que vous pouvez utiliser, le palier moins cher le plus proche est retenu, puis le plus cher le plus proche.

Réglez-le avec {"id": "auto-router", "cost_tier": "high", "allowed_models": ["anthropic/*"], "excluded_models": ["*/claude-*-mini"]} dans plugins; * correspond à n’importe quelle suite de caractères. Le routeur ne lit rien de votre invite et n’en conserve rien : la même requête choisit le même modèle, d’un tour à l’autre. Aucuns frais de routage. Le champ model de la réponse nomme celui qui a répondu; vos journaux consignent autonomousrelay/auto.

Les préférences réordonnent ; les contraintes rejettent

sort change l’ordre des candidats. only, ignore, max_price et quantizations les retirent. Si une contrainte élimine tous les candidats, la requête échoue avec 503 et nomme le filtre qui a vidé l’ensemble — elle ne bascule jamais en silence vers quelque chose que vous aviez exclu.

json
{
  "error": {
    "code": 503,
    "message": "No endpoints satisfy the request",
    "metadata": {"filters": ["provider.only=[together]", "quantizations=[fp8]"]}
  }
}

Les garde-fous priment sur la requête

Les garde-fous de l’organisation peuvent restreindre les fournisseurs, les modèles et les régions de données, et une requête ne peut pas les élargir — seulement les resserrer davantage. Si votre requête demande un fournisseur qu’un garde-fou exclut, le garde-fou l’emporte et l’erreur le précise.