Tu as décidé qu’une passerelle avait du sens — plusieurs fournisseurs, un seul endpoint compatible OpenAI, une seule facture. Vient maintenant la question plus délicate : laquelle choisir, sans finir chez un revendeur ré-emballé, qui gonfle les tokens et tombe en panne, 80 % sous le tarif catalogue parce que sa capacité s’évapore du jour au lendemain. Voici la checklist qu’on utiliserait, sur les cinq points qui comptent vraiment — et un script d’une minute pour tester les promesses au lieu de les croire sur parole.
1. Authenticité — est-ce le modèle authentique ?
Le nom du modèle est ce qu’il y a de plus facile à falsifier. Un revendeur peut servir un modèle plus petit, un fine-tune, ou ton prompt enrobé dans un gabarit figé derrière claude-sonnet-4-6. Vérifie les capacités qu’une version dégradée ne peut pas simuler : fenêtre de contexte complète, appels d’outils natifs, vision. L’ article sur l’authenticité des modèles contient les sondes.
- Le modèle tient-il son contexte annoncé en entier (aiguille dans une botte de foin à 150K+) ?
- Les outils natifs et la vision fonctionnent-ils, ou sont-ils simulés en texte ?
- Le modèle est-il traçable jusqu’à une source first-party (Bedrock, Vertex), ou inexpliqué ?
2. Honnêteté de la facturation — le compteur dit-il la vérité ?
Tu paies au token, et la passerelle en annonce le décompte. Le gonfler — un prompt système injecté en douce, ou un objet usage fabriqué de toutes pièces — est la façon la plus discrète de te surfacturer de 5 à 25×. Vérifie-le en 20 lignes (l’ article sur le gonflage des tokens).
- Les tokens annoncés correspondent-ils à ton texte réel, plus une petite surcharge fixe ?
- Les appels 4xx/5xx échoués sont-ils gratuits, ou paies-tu pour les erreurs ?
- Le cache de prompt est-il respecté — de vrais cache hits au tarif réduit ?
3. Fiabilité — tiendra-t-elle la charge ?
Une passerelle ajoute un saut ; elle doit le mériter en étant plus fiable que l’amont, pas moins. Cherche un comportement fail-fast (des erreurs que tu peux réessayer, pas des blocages de 90 secondes) et un routage qui s’écarte d’un backend qui se dégrade.
- Y a-t-il une page de statut publique et un chiffre de SLA publié ?
- Un failover entre fournisseurs, ou un seul amont par appel ?
- Échoue-t-elle vite et clairement pour que tes retries marchent, ou bloque-t-elle en silence ?
4. Couverture — une seule clé pour le travail que tu fais vraiment ?
- Chat, image et vidéo sur la même clé, ou juste du texte ?
- Compatible OpenAI sur l’ensemble — streaming, outils, vision, mode JSON ?
- Les routes natives là où elles comptent (ex. le
/v1/messagesd’Anthropic) sont-elles préservées intactes ?
5. Prix & conditions — bon marché pour une raison, ou justement tarifé ?
C’est sur le prix que le piège est amorcé. Une remise modeste sous le tarif officiel, c’est une marge sur une infrastructure à volume. Une passerelle 80 % sous le catalogue revend de la capacité de marché gris qui finit par disparaître — les économies viennent de quelque part, et c’est en général l’authenticité ou la stabilité.
- Tarifée par modèle par rapport au tarif officiel (auditable), pas une vague remise forfaitaire ?
- À l’usage (pay-as-you-go), ou enfermée derrière des abonnements et des crédits qui expirent ?
- Le solde expire-t-il ? Y a-t-il des minimums ?
La due diligence d’une minute
Ne crois pas la page marketing sur parole — ni la nôtre. Lance les vérifications :
# gateway_due_diligence.py
# À lancer sur n'importe quelle passerelle compatible OpenAI avant de lui faire confiance en production.
# Cinq vérifications, bien moins d'un centime, environ une minute.
import tiktoken
from openai import OpenAI
client = OpenAI(api_key="sk-...", base_url="https://api.brievio.com/v1")
# 1. FACTURATION HONNÊTE — prompt_tokens annoncés contre un comptage local par tokenizer.
msgs = [{"role": "user", "content": "Reply with the single word: ok."}]
r = client.chat.completions.create(model="claude-sonnet-4-6", messages=msgs, max_tokens=5)
local = len(tiktoken.get_encoding("cl100k_base").encode(msgs[0]["content"]))
print("token ratio (want ~1.0-1.6x):", round(r.usage.prompt_tokens / local, 1))
# 2. MODÈLE AUTHENTIQUE — un vrai tool_call structuré, pas du JSON glissé dans du texte.
r = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "weather in Tokyo? use the tool"}],
tools=[{"type": "function", "function": {"name": "get_weather",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}}}}],
)
print("returns real tool_calls:", r.choices[0].message.tool_calls is not None)
# 3. APPELS ÉCHOUÉS GRATUITS — envoie une requête volontairement invalide, puis vérifie ta page
# usage : un 4xx/5xx ne doit rien coûter.
# 4. CONTEXTE — aiguille dans une botte de foin sur la fenêtre annoncée par le modèle (voir
# l'article « ton Claude est-il vraiment Claude » pour le snippet).
# 5. CONDITIONS — une page de statut publique + un SLA publié existent ; le prix est par modèle
# par rapport au tarif officiel, pas un vague « 80 % de remise sur tout ».Où Brievio se situe sur sa propre checklist
Soyons honnêtes sur notre propre bulletin : Brievio route les modèles first-party authentiques via des canaux cloud tier-1, avec contexte complet et fonctionnalités natives intacts ; facture les vrais décomptes de tokens et ne facture rien sur les appels échoués ; tarife chaque modèle environ 15 % sous le tarif officiel (image et vidéo plus creusés), à l’usage, avec un solde qui n’expire pas. Là où on ne gagne pas : l’accès direct nous bat encore sur l’accès aux modèles dès le premier jour et les contrats en tant que provider-of-record, et OpenRouter couvre une long tail open-source bien plus large. Consulte les comparatifs complets et les tarifs, puis lance le script ci-dessus contre chacune des passerelles de ta liste restreinte.
Tout l’intérêt d’une checklist, c’est de pouvoir l’appliquer à tout le monde, y compris au fournisseur qui l’a écrite. Applique-la-nous.