Guide
Changer de modèle sans réécrire son code : base_url
Appeler Claude ou Gemini depuis un code existant en changeant base_url : adresses, exemple, fonctions ignorées, limites de cette voie.
Mis à jour le
Une API « compatible OpenAI » accepte des requêtes au format de la bibliothèque officielle d'OpenAI : on garde le même code, on change l'adresse de base (base_url), la clé et le nom du modèle. Anthropic et Google proposent une telle couche pour Claude et Gemini. C'est pratique pour essayer un autre modèle dans une application existante ; c'est moins adapté pour la production, car une partie des fonctions propres à chaque éditeur n'y passe pas. Détails d'après les documentations lues le 15/11/2026. Cette page décrit un format d'échange, elle ne recommande aucun fournisseur.
Les adresses de base
| Éditeur | base_url à indiquer |
Clé à utiliser |
|---|---|---|
| Anthropic (Claude) | https://api.anthropic.com/v1/ |
Une clé API Claude |
| Google (Gemini) | https://generativelanguage.googleapis.com/v1beta/openai/ |
Une clé API Gemini |
L'exemple d'Anthropic, en Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("ANTHROPIC_API_KEY"),
base_url="https://api.anthropic.com/v1/",
)
response = client.chat.completions.create(
model="claude-opus-5-5",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who are you?"},
],
)
print(response.choices[0].message.content)
Chez Google, le principe est identique, avec l'adresse ci-dessus et un modèle Gemini (l'exemple officiel utilise gemini-4-hydrogen).
Ce que dit Anthropic de sa couche
Anthropic la présente comme destinée surtout à tester et comparer les capacités des modèles, et non comme une solution de long terme ou prête pour la production dans la plupart des cas. Les différences principales listées :
- le paramètre
strictde l'appel de fonctions est ignoré : le JSON des outils n'est pas garanti conforme au schéma ; response_formatn'accepte quejson_schemaavecstrict: true;json_objectoutextrenvoient une erreur 400 ;- l'audio et les fichiers en entrée ne sont pas pris en charge (erreur 400) ;
- le prompt caching n'est pas pris en charge ;
- les messages système et « developer » sont regroupés et placés en tête, quel que soit leur emplacement dans la conversation ;
- la plupart des champs non pris en charge sont ignorés sans erreur :
seed,logprobs,presence_penalty,frequency_penalty,reasoning_effort, entre autres ; ndoit valoir exactement 1 ;- le paramètre
inference_geo(choix du lieu de traitement) n'est pas disponible par cette voie.
Le point le plus traître est le silence : un champ ignoré ne provoque pas d'erreur, votre code semble marcher, mais le réglage n'a aucun effet. Les limites de débit restent celles de l'API Claude (erreur 429), et les en-têtes renvoyés suivent la nomenclature OpenAI (x-ratelimit-remaining-requests, retry-after, x-request-id).
Ce que dit Google de la sienne
Google indique que la prise en charge des bibliothèques OpenAI est encore en bêta. Sont listés comme disponibles : le streaming, l'appel de fonctions, la sortie structurée, les plongements (embeddings, avec gemini-embedding-2 ou gemini-embedding-001), la compréhension d'images et d'audio, la génération d'images, les réglages de réflexion. Les lots se créent et se suivent, mais le dépôt et le téléchargement de fichiers ne passent pas par cette couche. Google recommande d'appeler directement l'API Gemini si vous n'utilisez pas déjà les bibliothèques OpenAI.
Quand l'utiliser, quand l'éviter
| Situation | Approche raisonnable |
|---|---|
| Comparer rapidement plusieurs modèles sur une application existante | Couche compatible |
| Prototype jetable, sans enjeu de coût ni de format | Couche compatible |
| Production avec un volume régulier | API native : cache, sortie structurée stricte, lots |
| Exigence de lieu de traitement | API native ou plateforme cloud, voir Europe |
| Plusieurs fournisseurs à garder interchangeables | Une couche d'abstraction dans votre code, qui appelle chaque API native |
Le bon réflexe
Si vous migrez une application, faites-le en deux temps : d'abord la couche compatible pour vérifier que le modèle répond bien à vos cas, puis le passage à la bibliothèque native de l'éditeur pour récupérer les fonctions qui font baisser la facture et fiabilisent les sorties. Anthropic signale aussi qu'un prompt longuement ajusté pour un autre modèle gagne souvent à être retravaillé pour Claude. Pour le choix du fournisseur lui-même, voir choisir un fournisseur d'API.
Questions fréquentes
Peut-on passer en production avec la couche compatible OpenAI d'Anthropic ?
Anthropic la présente comme destinée surtout à tester et comparer les modèles, et non comme une solution de long terme ou prête pour la production dans la plupart des cas. Elle recommande l'API native pour accéder à toutes les fonctions.
Le prompt caching marche-t-il via la compatibilité OpenAI chez Claude ?
Non. D'après la documentation d'Anthropic, le prompt caching n'est pas pris en charge par la couche de compatibilité ; il l'est dans les bibliothèques Anthropic.
Sources
Pages consultées pour écrire cet article :