Retour a tous les articles
Guides

Appeler l’API Gemini avec le SDK OpenAI : tutoriel de migration en ne changeant que base_url, la clé API et le nom du modèle

14 juin 2026 · 9 min de lecture · Claude / GPT / Gemini

Illustration de migration pour développeurs sur fond beige : à gauche, une fenêtre de code OpenAI SDK ; à droite, une carte de point de terminaison Gemini API ; au centre, trois lignes terracotta étiquetées base_url, API Key et model ; de petites icônes gris charbon représentent Python et TypeScript

Au 2026-06-14, la documentation Google sur la compatibilité Gemini OpenAI est très directe : si vous avez déjà du code utilisant les bibliothèques OpenAI en Python ou TypeScript, vous pouvez connecter Gemini en modifiant l’API Key, le base_url et le nom du modèle ; le modèle utilisé dans l’exemple de la documentation est gemini-3.5-flash, et la page de compatibilité a été mise à jour pour la dernière fois le 2026-05-18 (Google AI for Developers). Ce n’est pas de la « magie de couche d’adaptation » : il s’agit simplement d’envoyer les requêtes du SDK OpenAI vers le point d’entrée compatible fourni par Google.

Schéma de migration en trois étapes sur fond beige clair, avec trois cartes d’étapes couleur terre cuite de gauche à droite : remplacer GEMINI_API_KEY, remplacer base_url, remplacer model ; en bas, une fine ligne gris anthracite relie les trois entrées Python, TypeScript et REST

Installez d’abord le SDK, ne changez pas de paradigme d’appel

Si votre projet utilise déjà le SDK Python officiel d’OpenAI, vous pouvez conserver chat.completions.create(). Le dépôt du SDK Python d’OpenAI reste la source du client officiel (openai-python), et l’interface compatible de Google accepte aussi cette forme d’appel.

from openai import OpenAI

client = OpenAI(
    api_key="GEMINI_API_KEY",
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "system", "content": "You are a concise code reviewer."},
        {"role": "user", "content": "Review this Python function for edge cases."},
    ],
)

print(resp.choices[0].message.content)

L’API Key se crée depuis Google AI Studio (AI Studio API key). Faites attention à la barre oblique finale : /v1beta/openai/, et non l’interface native Gemini habituelle de type /v1beta/models/....

REST peut aussi être appelé au format OpenAI

Pour les services côté serveur, le débogage avec curl ou les contrôles de santé de passerelle, vous n’êtes pas obligé d’utiliser un SDK. Le chemin REST indiqué dans la documentation de compatibilité Google est /openai/chat/completions :

curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $GEMINI_API_KEY" \
  -d '{
    "model": "gemini-3.5-flash",
    "messages": [
      {"role": "user", "content": "Give me a 5-point migration checklist."}
    ]
  }'

Lors de la migration, commencez par exécuter cette commande. Elle permet de séparer quatre catégories de problèmes — clé, nom du modèle, sortie réseau et autorisations de facturation — ce qui fait gagner du temps par rapport à un débogage direct dans le service métier.

Comment mapper reasoning_effort

Le contrôle du thinking de Gemini et le reasoning_effort d’OpenAI se recoupent, et Google indique clairement qu’il ne faut pas transmettre les deux en même temps. La couche de compatibilité mappe les paramètres de style OpenAI vers les paramètres de thinking de Gemini (Google OpenAI compatibility).

OpenAI reasoning_effort Gemini 3 thinking_level Gemini 2.5 thinking_budget
minimal minimal ou low 1024
low low 1024
medium medium 8192
high high 24576

Pour une migration prudente, commencez par ne pas transmettre reasoning_effort et laissez le modèle utiliser ses valeurs par défaut. Pour contrôler les coûts, ajoutez low aux tâches à contexte long, puis observez la qualité de sortie et la facture en tokens.

Illustration visuelle d’un tableau horizontal de mapping de paramètres, avec à gauche une colonne gris anthracite pour les quatre niveaux OpenAI reasoning_effort, et à droite une colonne couleur terre cuite pour Gemini thinking_level et thinking_budget, reliées une à une par de fines lignes

Ne regardez pas seulement le nom du modèle pour les prix

La page officielle des tarifs de Google présente clairement les prix standard de Gemini 2.5 Pro et Flash, exprimés par million de tokens ; le prix de sortie inclut les thinking tokens (Gemini API pricing).

Modèle Prix d’entrée Prix de sortie
gemini-2.5-pro, prompt ≤ 200k $1.25 $10.00
gemini-2.5-pro, prompt > 200k $2.50 $15.00
gemini-2.5-flash, entrée texte/image/vidéo $0.30 $2.50
gemini-2.5-flash, entrée audio $1.00 $2.50

Ma recommandation : utilisez d’abord Flash pour le chat, la classification et les tâches de code légères ; passez à Pro pour le raisonnement complexe, la synthèse de longs documents et la refactorisation de code. Le seuil de prompt à 200k de Pro influence directement le prix d’entrée et de sortie : n’y entassez pas sans discernement les logs, extraits de recherche et prompts system répétés.

Checklist de migration

  1. Remplacez OPENAI_API_KEY par GEMINI_API_KEY, générée depuis AI Studio.
  2. Remplacez base_url par https://generativelanguage.googleapis.com/v1beta/openai/.
  3. Remplacez le nom du modèle par un modèle Gemini compatible, par exemple gemini-3.5-flash.
  4. Testez d’abord avec REST curl, puis reconnectez le SDK.
  5. Suspendez temporairement tout reasoning_effort personnalisé, puis ajoutez-le après avoir confirmé la qualité.
  6. Enregistrez les coûts des tokens d’entrée, de sortie et de thinking, en particulier le seuil de 200k de Pro.

Si vous devez aussi connecter Claude/GPT

Si vous ne connectez que Gemini, passer par le point d’entrée compatible officiel de Google est l’option la plus propre. Mais dès qu’un projet doit utiliser Claude, GPT et Gemini en même temps, gérer plusieurs clés, plusieurs factures et plusieurs SDK devient vite pénible. Le chemin le plus simple est onehop : compatible OpenAI/Anthropic, il suffit de remplacer base_url par https://api.onehop.ai/v1 pour appeler Claude/GPT/Gemini avec le même SDK OpenAI ; son positionnement met en avant des prix inférieurs aux tarifs officiels, $10 offerts aux nouveaux comptes et aucune carte bancaire requise.

from openai import OpenAI

client = OpenAI(
    api_key="ONEHOP_API_KEY",
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.5",
    messages=[{"role": "user", "content": "Refactor this API handler."}],
)
print(resp.choices[0].message.content)

Si vous voulez simplement faire fonctionner dès maintenant l’accès à plusieurs modèles, vous pouvez essayer directement : appeler Claude et d’autres modèles sur onehop, ou commencer par récupérer le crédit offert : inscription avec $10 de crédit d’essai offerts. Le point clé de la migration n’est pas de remplacer une pile de couches d’abstraction, mais de réduire les variables à trois choses : endpoint, key, model.