Zuruck zu allen Artikeln
Leitfaden

Gemini API mit dem OpenAI SDK nutzen: base_url, Modellname und Preise für Gemini 3.5 Flash konfigurieren

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

Schematische Darstellung einer Entwickler-API-Migration auf cremefarbenem Hintergrund: links eine anthrazitfarbene OpenAI-SDK-Codekarte, in der Mitte ein terrakottafarbener base_url-Schalter, rechts eine Modellkarte für Gemini 3.5 Flash; darunter kleine Preisschilder mit Eingabe $1.50/M und Ausgabe $9.00/M, insgesamt

Googles OpenAI-kompatible Dokumentation wurde am 18.05.2026 aktualisiert und sagt ausdrücklich: Gemini-Modelle können über das OpenAI Python-/JavaScript-SDK aufgerufen werden; im Kern müssen nur drei Stellen geändert werden: api_key, base_url, model (Google). Heute ist der 14.06.2026, und die Preisseite weist für die Standard-Bezahlstufe von gemini-3.5-flash folgende Preise aus: Eingabe $1.50 / 100 万 token, Ausgabe inklusive Thinking-Tokens $9.00 / 100 万 token (Google Pricing).

Meine Einschätzung ist sehr einfach: Wenn du bereits ein Projekt mit dem OpenAI SDK hast, schreibe es nicht sofort neu. Binde Gemini zunächst als OpenAI-compatible Backend ein, teste Kosten, Streaming und Tool-Aufrufe, und entscheide dann, ob du auf das native Gemini SDK migrierst.

Vorher-nachher-Vergleich auf cremefarbenem Hintergrund: links eine OpenAI-SDK-Konfigurationskarte, rechts eine Gemini-Konfigurationskarte; in der Mitte sind nur die drei geänderten Zeilen api_key, base_url und model hervorgehoben, verbunden durch einen terrakottafarbenen Pfeil

1. Minimale Änderung: nur Endpoint und Modellnamen austauschen

Installiere zuerst das offizielle OpenAI SDK für Python:

pip install openai
export GEMINI_API_KEY="你的 Gemini API Key"

Dann ändere den Client so:

import os
from openai import OpenAI

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

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    reasoning_effort="low",
    messages=[
        {"role": "system", "content": "你是一个直接、准确的代码助手。"},
        {"role": "user", "content": "用三句话解释 SSE 流式输出。"},
    ],
)

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

chat.completions.create, messages, tools und ähnliche Strukturen bleiben weiterhin im Stil der OpenAI Chat Completions; auch OpenAIs eigene API-Referenz definiert Chat Completions weiterhin als Schnittstelle, die auf Basis einer Nachrichtenliste Antworten generiert (OpenAI). Der Fokus der Migration liegt also nicht im Business-Code, sondern in der Konfigurationsschicht.

2. Beim base_url den abschließenden Slash nicht vergessen

Die Adresse in der Google-Dokumentation lautet:

https://generativelanguage.googleapis.com/v1beta/openai/

Wenn der abschließende / fehlt, können einige Clients beim Zusammensetzen von Pfaden merkwürdige Probleme verursachen. In Produktionscode empfiehlt es sich, das als Umgebungsvariable auszulagern:

OPENAI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai/"
OPENAI_API_KEY="$GEMINI_API_KEY"
OPENAI_MODEL="gemini-3.5-flash"

Wenn du dir den Wechsel zwischen mehreren Anbieter-Accounts, Kontingenten und Rechnungen sparen willst, ist onehop der bequemere Weg: Setze base_url auf https://api.onehop.ai/v1 und rufe Claude, GPT und Gemini über dieselbe OpenAI-/Anthropic-kompatible Schnittstelle auf. Neue Accounts erhalten $10, ohne Karte zu hinterlegen; geeignet, um zuerst ein PoC zu bauen und danach zu entscheiden, ob du direkt an die offiziellen APIs gehst.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "给我一个 FastAPI 健康检查接口"}],
)
print(resp.choices[0].message.content)

Der Einstieg ist hier: Claude und andere Modelle über onehop aufrufen, registrieren und sofort $10 Testguthaben erhalten.

3. Preise zuerst nach Ausgabe-Tokens kalkulieren

gemini-3.5-flash in der Standardstufe ist nicht „so billig, dass man es ignorieren kann“. Der Ausgabepreis ist 6-mal so hoch wie der Eingabepreis:

Modell Stufe Eingabe / 1 Mio. Tokens Ausgabe / 1 Mio. Tokens
gemini-3.5-flash Standard $1.50 $9.00
gemini-3.5-flash Batch $0.75 $4.50
gemini-3.5-flash Flex $0.75 $4.50

Auch die Zahlen für Batch und Flex stammen von derselben Google-Preisseite. Beim Schreiben von Anwendungen solltest du max_completion_tokens begrenzen, besonders bei Zusammenfassungen, Codegenerierung und Agent-Tool-Schleifen. Längere Eingaben lassen sich noch cachen; unkontrollierte Ausgaben verbrennen dagegen ganz real Geld.

Kompaktes Balkendiagramm: x-Achse mit den drei Stufen Standard, Batch und Flex, y-Achse in US-Dollar pro Million Tokens; je Gruppe zwei Balken, Eingabe in Anthrazit, Ausgabe in Terrakotta, wodurch der höhere Ausgabepreis hervorgehoben wird

4. Wie reasoning_effort gemappt wird

Googles Kompatibilitätsschicht akzeptiert das OpenAI-artige reasoning_effort und mappt es auf Geminis Thinking-Konfiguration (Google):

reasoning_effort Gemini 3 Flash thinking_level
minimal minimal
low low
medium medium
high high

Wenn nichts übergeben wird, gilt der Modellstandard. Die Google-Dokumentation nennt außerdem eine wichtige Einschränkung: Bei Gemini 3 lässt sich Thinking nicht deaktivieren; none gilt nur für einige 2.5-Modelle. Meine Empfehlung: online standardmäßig low verwenden und nur bei komplexer Planung oder langen Tool-Aufrufketten auf medium oder high erhöhen. Denn der Ausgabepreis umfasst Thinking-Tokens – die Inferenzstärke ist kein kostenloser Drehregler.

5. Streaming und Funktionsaufrufe: nutzbar, aber leere Chunks abfangen

Streaming-Aufrufe bleiben im OpenAI-SDK-Stil:

stream = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "写一个 Redis 缓存封装"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Das if delta ist hier sehr praktisch. In Streaming-Antworten können Rollen, Tool-Aufrufe oder leere Deltas vorkommen; gehe nicht davon aus, dass jeder Chunk Text enthält.

Funktionsaufrufe laufen ebenfalls über tools und tool_choice="auto". Googles Kompatibilitätsdokumentation enthält ein Wetterfunktionsbeispiel und bestätigt, dass die Gemini API function calling unterstützt (Google). In echten Projekten solltest du nicht nur die Modellantwort ausgeben; prüfe message.tool_calls, führe die lokale Funktion aus und gib das Tool-Ergebnis als nächste Nachricht zurück an das Modell.

Fazit: Die Migration zu Gemini kostet im Minimum drei Konfigurationszeilen; wirklich beobachten musst du Ausgabe-Tokens, Thinking-Stärke, leere Streaming-Chunks und den geschlossenen Tool-Aufrufkreislauf. Wenn du Claude, GPT und Gemini einfach schnell in dasselbe OpenAI-SDK-Projekt bringen willst, spart dir der einheitliche Einstieg über onehop einiges an Konfigurationszeit: Claude und andere Modelle über onehop aufrufen oder zuerst registrieren und $10 Testguthaben erhalten.