Gemini: OpenAI-kompatibles Format
Fast-Token ermöglicht den Aufruf von Google-Gemini-Modellen über das OpenAI-API-Protokoll. Wenn Sie bereits den OpenAI-SDK oder /v1/chat/completions nutzen, reicht es in der Regel, base_url und model anzupassen, um Gemini anzubinden – ohne Umstellung auf die native Gemini-API.
Diese Seite beschreibt vor allem die Nutzung des kompatiblen Formats. Request-Bodies, Antwortfelder und Online-Debugging finden Sie in der ChatGPT-Dokumentation und in den Links der Fähigkeitentabelle unten.
Zwei Integrationswege
| Punkt | OpenAI-kompatibles Format (diese Seite) | Native Gemini-API (andere Docs in diesem Abschnitt) |
|---|---|---|
| Typische Pfade | POST /v1/chat/completions, POST /v1/embeddings | POST /v1beta/models/{model}:generateContent usw. |
| Request-Body | OpenAI-Felder wie messages, model, stream | Gemini-Felder wie contents, generationConfig |
| Geeignet für | Bestehende OpenAI-Clients, Multi-Modell-Gateway, schnelle Migration | Nur-Gemini-Funktionen (thinkingConfig, Imagen-Parameter usw.) |
| Dokumentation | Diese Seite + Abschnitt Chat | API-Seiten unter Chat, Bilder, Dateien usw. |
Beide Wege nutzen denselben API Key und dieselbe Gateway-URL. Abrechnung gemäß dem Modell im Modellkatalog.
Einrichtung
Gateway und Authentifizierung
- Base URL:
https://fast-token.com/v1(wie Erste Schritte) - Auth: Header
Authorization: Bearer <Fast-Token_API_KEY> - Modellname: Modell-ID mit
geminiaus dem Modellkatalog in das Feldmodelkopieren
OpenAI SDK (empfohlen)
base_url des offiziellen SDK auf Fast-Token setzen; der Rest wie bei OpenAI:
from openai import OpenAI
client = OpenAI(
base_url="https://fast-token.com/v1",
api_key="<Fast-Token_API_KEY>",
)
completion = client.chat.completions.create(
model="gemini-2.5-pro", # 以模型广场为准
messages=[
{"role": "user", "content": "用一句话介绍你自己"},
],
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://fast-token.com/v1",
apiKey: "<Fast-Token_API_KEY>",
});
const completion = await client.chat.completions.create({
model: "gemini-2.5-pro",
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);Streaming: stream: true setzen. Siehe Chat-Vervollständigung erstellen (Streaming).
Übersicht Chat-kompatibler Funktionen
Alles Folgende läuft über OpenAI-kompatible Pfade, oft als „chat-kompatibles Format“ gruppiert. Praktisch meist dasselbe POST /v1/chat/completions (Embeddings: POST /v1/embeddings), unterschieden durch Modell und Nachrichtenstruktur.
| Funktion | Beschreibung | Referenz |
|---|---|---|
| Gemini-Bilderstellung | Bilder aus Text (optional Referenzbild) erzeugen oder bearbeiten | Chat-Bild erstellen (ohne Stream) |
| Chat | Standard-Mehrturn-Dialog, mit/ohne Stream | Ohne Stream, Mit Stream |
| Chat – Denken 1 | Dialog mit Modell-„Denken“-Ausgabe (Variante 1) | Stream (extra_body.enable_thinking) |
| Chat – Denken 2 | Dialog mit „Denken“-Ausgabe (Variante 2) | Wie oben; Modelle laut Katalog |
| Bilderkennung | Bild hochladen zum Verstehen, Beschreiben oder Fragen | Bilderkennung (Stream), ohne Stream |
| Chat + Dateilesen | Dokumente im Dialog analysieren | Siehe „Dateien und Multimodal“ unten |
| Text-Embeddings | Text in Vektoren | Embeddings erstellen |
Modellauswahl
Die Modell-ID pro Szenario steht im Modellkatalog. Probieren Sie Gemini-Modelle mit passender Kennzeichnung; bei „Modell nicht gefunden“ oder nicht unterstützter Funktion wählen Sie einen anderen Gemini-Eintrag für dasselbe Szenario.
Hinweise je Szenario
Standard-Chat
- Endpoint:
POST /v1/chat/completions messages-Array für Mehrturn;role:system/user/assistant(wie OpenAI)- Ohne Stream:
stream: falseoderstreamweglassen; mit Stream:stream: true - Übliche Parameter (
temperature,max_tokens,top_pusw.) wie OpenAI; siehe Chat-Vervollständigung (ohne Stream)
Denkmodus (Denken 1 / 2)
Einige Gemini-Thinking-Modelle liefern Denk-Ausgabe in Stream-Requests über ein Erweiterungsfeld:
{
"model": "gemini-2.5-pro",
"messages": [{ "role": "user", "content": "解释相对论的核心思想" }],
"stream": true,
"extra_body": {
"enable_thinking": true
}
}- Denken 1 und 2 entsprechen unterschiedlichen Modellen oder Routen; wählen Sie im Katalog als „thinking“ markierte Modelle
- Für volle
thinkingConfig-Kontrolle: Native Gemini-API
Bilderkennung (Vision)
In einer user-Nachricht Multimodal-Array in content: text + image_url (URL oder Base64).
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "这张图里有什么?" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.jpg" }
}
]
}
],
"stream": true
}Base64: Chat-Bilderkennung (Stream) Base64. Native Parameter: Bildverständnis.
Bilderstellung
- Chat + bildfähige Gemini-Modelle für Text-zu-Bild und Referenzbearbeitung
- Anforderung in natürlicher Sprache in
messages; Referenz:textundimage_urlincontent - Struktur: Chat-Bild erstellen (ohne Stream)
- Seitenverhältnis und Auflösung: native Bildgenerierung
Chat + Dateilesen
Im kompatiblen Format können Dokumente, PDFs usw. als Teil multimodaler Eingabe übergeben werden (MIME und Größenlimits laut Katalog):
- Zuerst in
messages[].contentnach OpenAI-Multimodal-Konvention - Große Dateien: native Dokumentverständnis (
fileData/inlineData), Ergebnis in der App in den Chat einbinden
Text-Embeddings
- Endpoint:
POST /v1/embeddings - Body:
model+input(String oder Array), wie OpenAI Embeddings - Beispiele: Embeddings erstellen; Embedding-Objekt
- Nur-Gemini-Optionen: Native Gemini-Text-Embeddings
Kompatibel oder native API
| Anforderung | Empfehlung |
|---|---|
| Schnelle Integration, OpenAI SDK / bestehender Code | OpenAI-kompatibles Format (diese Seite) |
Stream-Denken, generationConfig, Google Search Grounding | Native API (z. B. Text + Denken (Stream), Google Search) |
| Imagen, TTS, Video/Audio | Native API-Kapitel |
| Chat + Vision + Bilder + Embeddings mit OpenAI-Client | Kompatibles Format deckt den Hauptpfad ab |
FAQ
F: Warum nicht identisch mit der OpenAI-Doku?
A: Die Kompatibilitätsschicht richtet Request/Antwort an OpenAI aus, darunter läuft Gemini. Einige OpenAI-only-Parameter können ignoriert werden.
F: Was in model eintragen?
A: Die vollständige Modell-ID aus dem Katalog (meist mit gemini), keine Kurznamen.
F: Stream-Antwortformat?
A: SSE, Zeilen data: {...} und data: [DONE]; siehe Chat-Vervollständigungs-Chunk.
F: Vollständige Antwort-JSON?
A: Chat-Vervollständigungsobjekt.
Weiterlesen
- Erste Schritte
- API-Kurzanleitung
- Modelle auflisten
- Weitere Seiten — native Gemini-REST-API