Skip to content

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

PunktOpenAI-kompatibles Format (diese Seite)Native Gemini-API (andere Docs in diesem Abschnitt)
Typische PfadePOST /v1/chat/completions, POST /v1/embeddingsPOST /v1beta/models/{model}:generateContent usw.
Request-BodyOpenAI-Felder wie messages, model, streamGemini-Felder wie contents, generationConfig
Geeignet fürBestehende OpenAI-Clients, Multi-Modell-Gateway, schnelle MigrationNur-Gemini-Funktionen (thinkingConfig, Imagen-Parameter usw.)
DokumentationDiese Seite + Abschnitt ChatAPI-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 gemini aus dem Modellkatalog in das Feld model kopieren

OpenAI SDK (empfohlen)

base_url des offiziellen SDK auf Fast-Token setzen; der Rest wie bei OpenAI:

python
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)
javascript
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.

FunktionBeschreibungReferenz
Gemini-BilderstellungBilder aus Text (optional Referenzbild) erzeugen oder bearbeitenChat-Bild erstellen (ohne Stream)
ChatStandard-Mehrturn-Dialog, mit/ohne StreamOhne Stream, Mit Stream
Chat – Denken 1Dialog mit Modell-„Denken“-Ausgabe (Variante 1)Stream (extra_body.enable_thinking)
Chat – Denken 2Dialog mit „Denken“-Ausgabe (Variante 2)Wie oben; Modelle laut Katalog
BilderkennungBild hochladen zum Verstehen, Beschreiben oder FragenBilderkennung (Stream), ohne Stream
Chat + DateilesenDokumente im Dialog analysierenSiehe „Dateien und Multimodal“ unten
Text-EmbeddingsText in VektorenEmbeddings 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: false oder stream weglassen; mit Stream: stream: true
  • Übliche Parameter (temperature, max_tokens, top_p usw.) 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:

json
{
  "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).

json
{
  "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: text und image_url in content
  • 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):

  1. Zuerst in messages[].content nach OpenAI-Multimodal-Konvention
  2. Große Dateien: native Dokumentverständnis (fileData / inlineData), Ergebnis in der App in den Chat einbinden

Text-Embeddings

Kompatibel oder native API

AnforderungEmpfehlung
Schnelle Integration, OpenAI SDK / bestehender CodeOpenAI-kompatibles Format (diese Seite)
Stream-Denken, generationConfig, Google Search GroundingNative API (z. B. Text + Denken (Stream), Google Search)
Imagen, TTS, Video/AudioNative API-Kapitel
Chat + Vision + Bilder + Embeddings mit OpenAI-ClientKompatibles 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