Aller au contenu
Cercle IA Tech · API Un site du réseau Cercle IA Tech

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 strict de l'appel de fonctions est ignoré : le JSON des outils n'est pas garanti conforme au schéma ;
  • response_format n'accepte que json_schema avec strict: true ; json_object ou text renvoient 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 ;
  • n doit 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 :

  1. https://platform.claude.com/docs/en/cli-sdks-libraries/libraries/openai-sdk
  2. https://aistudio.google.com/docs/openai
  3. https://platform.claude.com/docs/en/manage-claude/data-residency

À lire aussi