Zuruck zu allen Artikeln
Leitfaden

Gemini API mit dem OpenAI SDK nutzen: Integrationsanleitung mit nur base_url, Key und Modellname ändern

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

Schematische Darstellung einer Entwickler-Integration auf cremefarbenem Hintergrund: links ein anthrazitfarbenes Codefenster, in dem die drei Konfigurationen base_url, api_key und model terrakottafarben hervorgehoben sind; rechts ein Gemini-API-Cloud-Knoten; dazwischen eine Verbindung mit dünnem Linienpfeil, unten kleine Preiskarten und stilisierte SDK-Kacheln, kein Logo, kein

Google hat es sehr direkt formuliert: Die Gemini API unterstützt OpenAI compatibility und kann mit dem OpenAI Python SDK, dem JavaScript SDK und per REST aufgerufen werden; im offiziellen Beispiel lautet die base_url https://generativelanguage.googleapis.com/v1beta/openai/, der Modellname ist gemini-3.5-flash (Google AI for Developers).
Für Teams, die bereits Code mit dem OpenAI SDK haben, ist das sehr praktisch. Du musst keinen neuen Client schreiben und die Nachrichtenstruktur nicht ändern: Ersetze zuerst drei Konfigurationen, bringe es zum Laufen und entscheide dann, ob du native Gemini-Funktionen nutzen willst.

Dreistufiges Migrationsflussdiagramm auf cremefarbenem Hintergrund: links eine Karte mit alter OpenAI-SDK-Konfiguration, in der Mitte ein terrakottafarbener Pfeil mit der Beschriftung „3 Zeilen ändern“, rechts eine Karte mit neuer Gemini-API-Konfiguration; die drei Zeilen sind base_url, api_key und model, mit feinen anthrazitfarbenen Linien und terrakottafarbener Hervorhebung

Zuerst: Welche drei Stellen müssen geändert werden?

In der Google-Dokumentation steht nach dem Beispiel sehr klar: Geändert werden nur api_key, base_url und model. Das OpenAI Python SDK selbst unterstützt ebenfalls die Konfiguration von base_url oder OPENAI_BASE_URL (openai-python), beim Node SDK heißt das entsprechende Feld baseURL (openai-node).

Minimales Python-Beispiel:

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": "你是一个简洁的技术助手。"},
        {"role": "user", "content": "用一句话解释什么是向量数据库。"},
    ],
)

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

Wenn dein bestehender Code bereits client.chat.completions.create() verwendet, musst du höchstwahrscheinlich nur die Stelle, an der der Client initialisiert wird, in Konfigurationswerte auslagern. Codiere den Modellnamen nicht fest in Business-Funktionen ein – später auf Batch, Flex oder ein anderes Modell umzusteigen, wird sonst deutlich schmerzhafter.

Bei Node.js ist es dasselbe Muster

In der JavaScript-Version wird lediglich der Feldname von base_url zu baseURL geändert:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GEMINI_API_KEY,
  baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});

const resp = await client.chat.completions.create({
  model: "gemini-3.5-flash",
  messages: [{ role: "user", content: "给我一个 Redis 限流方案。" }],
});

console.log(resp.choices[0].message.content);

REST lässt sich ebenfalls direkt aufrufen: POST https://generativelanguage.googleapis.com/v1beta/openai/chat/completions, im Header mit Authorization: Bearer $GEMINI_API_KEY. Das eignet sich gut, um zunächst mit curl Probleme mit SDK, Proxy oder Umgebungsvariablen auszuschließen.

Kompakte Architekturübersicht: links drei Einstiegspunkte Python SDK, Node SDK und REST als kleine Karten, die in denselben OpenAI-kompatiblen Endpoint münden und anschließend mit Gemini 3.5 Flash verbunden sind; cremefarbener Hintergrund, terrakottafarbene Pfeile, anthrazitfarbene Labels, ohne Branding

Preise nicht nach Gefühl bewerten, sondern nach Ausgabe berechnen

Mit Stand vom 2026-06-14 nennt die offizielle Pricing-Seite von Gemini für gemini-3.5-flash einen Standardpreis von $1.50 / 1M tokens für Eingabe und $9.00 / 1M tokens für Ausgabe; Batch und Flex kosten jeweils $0.75 / 1M tokens für Eingabe und $4.50 / 1M tokens für Ausgabe (Gemini API pricing). Offiziell wird außerdem klargestellt, dass der Ausgabepreis Thinking Tokens enthält – bei Reasoning-Aufgaben solltest du also nicht nur auf den Eingabepreis schauen.

Modus Eingabe / 1M tokens Ausgabe / 1M tokens Geeignete Szenarien
Standard $1.50 $9.00 Online-Anfragen, niedrige Latenz
Batch $0.75 $4.50 Offline-Batchverarbeitung
Flex $0.75 $4.50 Wenn elastische Planung akzeptabel ist

Meine Empfehlung ist einfach: Chat, Agents und Editor-Plugins zuerst über Standard laufen lassen; Log-Zusammenfassungen, Datenbereinigung und Offline-Evaluationen möglichst über Batch/Flex. Bei Aufgaben mit langer Ausgabe wird der Kostenunterschied schnell größer.

Die häufigsten Stolperfallen bei der Migration

Erstens: Vergiss das abschließende /openai/ in der base_url nicht. Viele 404-Fehler oder Meldungen, dass ein Modell nicht existiert, entstehen im Kern dadurch, dass der native Gemini-Pfad statt des Kompatibilitätspfads aufgerufen wird.
Zweitens: Trenne deine Umgebungsvariablen sauber. OPENAI_API_KEY kann weiterhin für OpenAI verwendet werden; für Gemini empfiehlt sich eine eigene Variable GEMINI_API_KEY, damit in CI nicht zwei Provider um dieselbe Variable konkurrieren.
Drittens: Führe zuerst models.list() aus. Die Google-Dokumentation enthält Beispiele zum Auflisten und Abrufen von Modellen; nutze sie vor dem Produktivbetrieb, um Account-Region, Berechtigungen und Modell-ID zu prüfen.
Viertens: Für Streaming, Function Calling und Bildeingaben gibt es Beispiele in der Kompatibilitätsschicht, aber gehe nicht davon aus, dass alle OpenAI-Parameter eins zu eins unterstützt werden. Teste zuerst mit einer realen Business-Anfrage als Regression.

Wenn du weniger Keys pflegen möchtest

Wenn dein Team gleichzeitig Claude, GPT und Gemini nutzt, ist es lästig, alles einzeln zu beantragen, Karten zu hinterlegen und Limits zu konfigurieren. Der einfache Weg ist onehop: Ändere die base_url des OpenAI SDK auf https://api.onehop.ai/v1, nutze den Key von onehop und du kannst über OpenAI-/Anthropic-kompatible Schnittstellen Claude, GPT und Gemini aufrufen. Die Positionierung: weniger Aufwand beim Integrationsprozess; die Preise liegen unter den offiziellen Preisen, neue Accounts erhalten $10, keine Kartenzahlung erforderlich.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "把这段报错日志总结成三条原因。"}],
)

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

Wenn du Claude oder Multi-Modell-Routing ausprobieren möchtest, schau direkt hier: Claude und andere Modelle über onehop aufrufen. Wenn du zuerst ein kleines Beispiel ausführen willst, ohne eine Karte zu hinterlegen, nutze diesen Einstieg: Registrieren und $10 Testguthaben erhalten.

Fazit: Zuerst konfigurieren, nicht den Anbieter fest eincodieren

Der größte Wert dieser OpenAI compatibility von Gemini liegt nicht darin, dass es „noch ein weiteres Modell“ gibt, sondern darin, dass die Migrationskosten niedrig genug sind. Lege base_url, api_key und model in der Konfiguration ab, während der Business-Code weiterhin die Chat Completions des OpenAI SDK nutzt.
Nachdem alles läuft, ergänze drei Dinge: Eingabe-/Ausgabe-Tokens protokollieren, je nach Aufgabe Standard oder Batch/Flex wählen und die Modell-ID als Gray-Release-Schalter umsetzen. So kannst du heute Gemini anbinden und morgen Claude oder einen anderen kompatiblen Dienst, ohne erneut den Kern deiner Business-Logik anzufassen.