Zuruck zu allen Artikeln
Leitfaden

Gemini API mit dem OpenAI SDK aufrufen: Migrationsanleitung mit nur base_url, API-Key und Modellname

14. Juni 2026 · 9 Min. Lesezeit · Claude / GPT / Gemini

Migrationsgrafik für Entwickler auf cremefarbenem Hintergrund: links ein OpenAI-SDK-Codefenster, rechts eine Gemini-API-Endpunktkarte, dazwischen drei terrakottafarbene Verbindungslinien mit den Labels base_url, API Key und model; kleine anthrazitfarbene Icons stehen für Python und TypeScript

Stand 2026-06-14 formuliert Googles Dokumentation zur Gemini OpenAI Compatibility sehr direkt: Wenn bereits Python- oder TypeScript-Code mit der OpenAI-Bibliothek vorhanden ist, kann man Gemini durch Ändern des API-Keys, von base_url und des Modellnamens anbinden; das Beispielmodell in der Dokumentation ist gemini-3.5-flash, die Kompatibilitätsseite wurde zuletzt am 2026-05-18 aktualisiert (Google AI for Developers). Das ist keine „Magie einer Anpassungsschicht“, sondern leitet lediglich die Anfragen des OpenAI SDK an den von Google bereitgestellten kompatiblen Einstiegspunkt weiter.

Dreistufiges Migrationsflussdiagramm auf cremefarbenem Hintergrund, von links nach rechts drei terrakottafarbene Schritt-Karten: GEMINI_API_KEY ersetzen, base_url ersetzen, model ersetzen; unten verbinden dünne anthrazitfarbene Linien die drei Einstiegspunkte Python, TypeScript und REST

Zuerst das SDK installieren, nicht das Aufrufparadigma wechseln

Wenn dein Projekt bereits das offizielle OpenAI Python SDK verwendet, kannst du chat.completions.create() beibehalten. Das OpenAI-Python-SDK-Repository ist weiterhin die offizielle Quelle des Clients (openai-python), und Googles kompatible Schnittstelle akzeptiert genau diese Aufrufform.

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)

Den API-Key erstellst du in Google AI Studio (AI Studio API key). Achte auf den abschließenden Schrägstrich: /v1beta/openai/, nicht die native Gemini-Standardschnittstelle /v1beta/models/....

REST funktioniert ebenfalls im OpenAI-Format

Für Server, curl-Debugging oder Gateway-Health-Checks brauchst du nicht zwingend ein SDK. Der in Googles Kompatibilitätsdokumentation angegebene REST-Pfad lautet /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."}
    ]
  }'

Führe bei der Migration zuerst diesen Aufruf aus. Damit lassen sich vier Problemklassen getrennt prüfen: Key, Modellname, Netzwerkausgang und Abrechnungsberechtigungen. Das spart Zeit gegenüber direktem Debugging im Business-Service.

Wie reasoning_effort abgebildet wird

Geminis Thinking-Steuerung und OpenAIs reasoning_effort überschneiden sich, und Google sagt ausdrücklich, dass beide nicht gleichzeitig übergeben werden sollen. Die Kompatibilitätsschicht bildet Parameter im OpenAI-Stil auf Geminis Thinking-Parameter ab (Google OpenAI compatibility).

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

Für eine konservative Migration übergib zunächst kein reasoning_effort, damit das Modell die Standardwerte verwendet. Wenn du Kosten kontrollieren möchtest, setze bei Aufgaben mit langem Kontext low und beobachte anschließend Ausgabequalität und Token-Abrechnung.

Visualisierte Illustration einer horizontalen Parameter-Mapping-Tabelle, links eine anthrazitfarbene Spalte mit vier Stufen von OpenAI reasoning_effort, rechts eine terrakottafarbene Spalte mit Gemini thinking_level und thinking_budget, dazwischen dünne Linien mit Eins-zu-eins-Zuordnung

Nicht nur auf den Modellnamen beim Preis schauen

Googles offizielle Preisseite listet die Standardpreise für Gemini 2.5 Pro und Flash sehr klar auf, jeweils pro 1 Million Token; der Ausgabepreis enthält Thinking Tokens (Gemini API pricing).

Modell Eingabepreis Ausgabepreis
gemini-2.5-pro, Prompt ≤ 200k $1.25 $10.00
gemini-2.5-pro, Prompt > 200k $2.50 $15.00
gemini-2.5-flash, Text-/Bild-/Videoeingabe $0.30 $2.50
gemini-2.5-flash, Audioeingabe $1.00 $2.50

Meine Empfehlung: Für Chat, Klassifikation und leichte Code-Aufgaben zuerst Flash verwenden; für komplexes Schlussfolgern, Zusammenfassungen langer Dokumente und Code-Refactoring dann auf Pro wechseln. Die 200k-Prompt-Schwelle von Pro wirkt sich direkt auf Eingabe- und Ausgabepreise aus – stopfe also nicht wahllos Logs, Retrieval-Snippets und wiederholte System-Prompts hinein.

Migrationscheckliste

  1. OPENAI_API_KEY durch GEMINI_API_KEY ersetzen und in AI Studio generieren.
  2. base_url auf https://generativelanguage.googleapis.com/v1beta/openai/ ändern.
  3. Den Modellnamen auf ein kompatibles Gemini-Modell ändern, zum Beispiel gemini-3.5-flash.
  4. Zuerst mit REST curl testen, dann wieder ans SDK anbinden.
  5. Benutzerdefiniertes reasoning_effort vorerst aussetzen und erst nach Bestätigung der Qualität wieder hinzufügen.
  6. Kosten für Eingabe-, Ausgabe- und Thinking Tokens protokollieren, insbesondere die 200k-Schwelle bei Pro.

Wenn du auch Claude/GPT anbinden möchtest

Wenn du nur Gemini nutzt, ist Googles offizieller kompatibler Einstiegspunkt der sauberste Weg. Sobald ein Projekt jedoch gleichzeitig Claude, GPT und Gemini benötigt, werden mehrere Keys, mehrere Abrechnungen und mehrere SDKs schnell lästig. Der einfachere Weg ist onehop: OpenAI-/Anthropic-kompatibel, base_url auf https://api.onehop.ai/v1 ändern, und du kannst mit demselben OpenAI SDK Claude/GPT/Gemini aufrufen; beworben werden niedrigere Preise als offiziell, $10 Startguthaben für neue Accounts und keine erforderliche Kartenbindung.

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)

Wenn du im Moment einfach nur eine Multi-Modell-Anbindung zum Laufen bringen willst, kannst du es direkt ausprobieren: Claude und andere Modelle über onehop aufrufen, oder zuerst Guthaben sichern: Bei der Registrierung $10 Testguthaben erhalten. Der Kern der Migration besteht nicht darin, einen Haufen Abstraktionsschichten auszutauschen, sondern die Variablen auf drei Dinge zu reduzieren: endpoint, key, model.