Si ton appli parle déjà à l’API d’OpenAI, passer à Brievio prend une dizaine de minutes — dont l’essentiel à créer ton compte. Tu gardes ton SDK et ta base de code ; tu obtiens les modèles authentiques sur une infrastructure fiable, avec une facturation des tokens honnête. Ce guide parcourt les quatre formes d’intégration que la plupart des équipes utilisent, et la modification d’une seule ligne dont chacune a besoin.
Étape 0 — Obtiens une clé (2 minutes)
- Crée ton compte sur brievio.com/app/signup. Tu reçois 2 $ de crédit à l’inscription ; aucune carte requise.
- Va sur /app/keys et crée une clé. Elle commence par
sk-brievio-. - Définis la variable d’environnement :
export BRIEVIO_API_KEY=sk-brievio-....
Étape 1 — Bascule ton SDK (1 minute)
Python (paquet openai)
# Avant — pointe directement sur OpenAI
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
)
# Après — pointe sur Brievio. Tout le reste ne bouge pas.
from openai import OpenAI
client = OpenAI(
api_key=os.environ["BRIEVIO_API_KEY"],
base_url="https://api.brievio.com/v1",
)Node / TypeScript
// Avant
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
// Après
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.BRIEVIO_API_KEY,
baseURL: "https://api.brievio.com/v1",
});LangChain
LangChain utilise en interne le même client OpenAI, la modification est donc identique. L’identifiant de modèle est désormais un slug Brievio — voir /models pour la liste à jour (essaie claude-sonnet-4-6, gemini-2.5-flash, claude-opus-4-7).
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="claude-sonnet-4-6", # on a changé de modèle
api_key=os.environ["BRIEVIO_API_KEY"],
base_url="https://api.brievio.com/v1",
)Vercel AI SDK
@ai-sdk/openai lit par défaut son URL de base et sa clé d’API depuis les variables d’environnement. Définis-les et c’est terminé — chaque utilitaire du framework (streamText, generateObject, retries, routage d’outils) fonctionne sans changement.
import { openai } from "@ai-sdk/openai";
// @ai-sdk/openai lit OPENAI_BASE_URL automatiquement
process.env.OPENAI_BASE_URL = "https://api.brievio.com/v1";
process.env.OPENAI_API_KEY = process.env.BRIEVIO_API_KEY;
const model = openai("claude-sonnet-4-6");
// ensuite, utilise streamText / generateText / streamObject comme avantSDK Anthropic (si tu es déjà sur Claude)
Brievio expose l’API Messages native d’Anthropic sur /v1/messages en plus de la forme OpenAI — tu n’as donc pas à changer de SDK.
from anthropic import Anthropic
# Avant — SDK Anthropic vers api.anthropic.com
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
# Après — même SDK, vers Brievio. Cache, thinking, tools : tout passe.
client = Anthropic(
api_key=os.environ["BRIEVIO_API_KEY"],
base_url="https://api.brievio.com", # le SDK ajoute /v1/messages
)Étape 2 — Teste le portefeuille (1 minute)
Avant de toucher au code de production, lance un test bon marché contre claude-haiku-4-5. S’il renvoie une réponse correcte, ta clé fonctionne, la facturation fonctionne, la couche de routage est en bonne santé.
# Test de fumée bon marché, à peu près déterministe, pour valider la migration.
resp = client.chat.completions.create(
model="claude-haiku-4-5", # le Claude le moins cher
messages=[{"role": "user", "content": "ping"}],
max_tokens=8,
temperature=0,
)
assert resp.choices[0].message.content, "réponse vide"
print("ok — le portefeuille Brievio fonctionne, coût total ~$0.0001")Étape 3 — Bascule le trafic (5 minutes)
Le schéma sûr : deux variables d’environnement dans ton appli — AI_BASE_URL et AI_API_KEY — sélectionnées par environnement. La production reste sur OpenAI ; la préproduction bascule sur Brievio. Au bout de 24 heures, fais basculer la prod.
Si tu veux connaître l’impact sur les coûts avant de basculer, le tableau de bord de Brievio affiche le coût par appel face au tarif officiel en amont — facile de calculer l’écart mensuel prévu sur tes vrais prompts.
Ce qui ne change pas
- Ton SDK et ta base de code.
- Le streaming, le function calling, l’usage d’outils, la vision, les sorties structurées.
- Les schémas de requête et de réponse exacts d’OpenAI.
- La forme des erreurs (
error.message/error.type/error.code).
Ce qui change en mieux
- Authenticité. Le modèle first-party authentique à chaque appel — contexte complet, outils et cache natifs, aucun downgrade silencieux ni proxy ré-emballé.
- Tarifs. Chaque modèle est facturé environ 15 % en dessous du tarif catalogue officiel du fournisseur, sur les vrais décomptes de tokens — voir /pricing.
- Modalités. Le même SDK atteint Claude (
claude-opus-4-7), Gemini (gemini-2.5-pro), GPT-Image-2, Veo 3, Nano Banana — voir /models. - Facturation. Portefeuille natif Stripe — cartes, Apple Pay, Google Pay, ACH, SEPA, Alipay, WeChat Pay. Une seule facture auditable.
- Fiabilité. Bascule automatique sous surveillance — nous re-routons dès qu’un fournisseur en amont se dégrade, en général avant que ta boucle de retry ne se déclenche.
Les cas qui se passent mal
- Les endpoints spécifiques à OpenAI que nous ne couvrons pas aujourd’hui :
/v1/responses(utilise/v1/chat/completions),/v1/assistants(gère l’état de ton côté ; nous sommes une passerelle sans état),/v1/realtime(prévu). - Certaines fonctionnalités propres à Claude —
cache_control, lethinkingétendu — fonctionnent au mieux via l’endpoint natif /v1/messages, pas via la forme OpenAI.
Bloqué ? contact@brievio.com — un humain répond dans la journée ouvrée. Si tu mènes une migration sérieuse, on prend un appel ensemble.