generateContent, batchEmbedContents, Imagen predict). Wechseln Sie zum
OpenAI-kompatiblen Endpunkt, wenn Sie Kompatibilitätsverhalten benötigen, das
der native Adapter noch nicht implementiert (insbesondere entfernte
image_url-Werte).
Konfigurieren
config.yaml:
USE_GOOGLE_GEMINI_NATIVE_API wird weiterhin als veralteter globaler
Schalter berücksichtigt, wenn GEMINI_API_MODE pro Provider nicht gesetzt
ist. Verwenden Sie bevorzugt GEMINI_API_MODE.Base-URLs
GoModel verwendet intern getrennte Basis-URLs für natives Gemini und die OpenAI-kompatible API:- nativer Chat/Modelle:
https://generativelanguage.googleapis.com/v1beta - OpenAI-kompatibel:
https://generativelanguage.googleapis.com/v1beta/openai
GEMINI_BASE_URL überschreibt sie. Endet der Wert auf /openai, verwendet
GoModel ihn für den OpenAI-kompatiblen Client und leitet die native Basis ab,
indem /openai entfernt wird. Dateien und Batches verwenden immer die
OpenAI-kompatible Schnittstelle; Chat, Embeddings und Bilder folgen dem
API-Modus.
Embeddings
Im nativen Modus werden Embeddings übermodels/{model}:batchEmbedContents
bedient. dimensions wird auf outputDimensionality abgebildet, und
encoding_format: "base64" wird berücksichtigt. Gemini meldet auf keiner der
beiden API-Schnittstellen eine Token-Nutzung für Embeddings. Embedding-Responses
enthalten daher Token-Zahlen von null, und die Nutzungszeile wird mit einem
Vorbehalt zur Kostenberechnung markiert.
Bildgenerierung und -bearbeitung
Im nativen Modus funktionieren die OpenAI-kompatiblen Bild-Endpunkte mit Gemini-Bildmodellen (gemini-2.5-flash-image, …, über generateContent).
Google hat Imagen im August 2026 aus der AI-Studio-API entfernt; Imagen wird
weiterhin auf Vertex AI bereitgestellt.
Bildbearbeitungen erfordern den nativen Modus und ein Gemini-Bildmodell; Masken
werden nicht unterstützt. Details zur Parameterabbildung und zu den Preisen
finden Sie in den
Provider-Hinweisen der Images API.
Reasoning Effort
Im nativen Modus wirdreasoning_effort (oder reasoning.effort) in Geminis
thinkingConfig übersetzt:
Thinking lässt sich bei Gemini 3 nicht abschalten, und Pro-Modelle sowie 3.7
und 3.8 Flash lehnen
minimal ab. GoModel sendet daher die niedrigste Stufe,
die diese Modelle akzeptieren, statt Googles 400 weiterzugeben. Ein explizites
extra_body.google.thinking_config wird immer unverändert weitergeleitet.
Sampling-Parameter bei Gemini 3
Googles Migrationsleitfäden für Gemini 3 empfehlen,temperature, top_p und
top_k aus jedem Request zu entfernen, weil die Modelle auf ihre
Standardwerte abgestimmt sind, und führen candidate_count für Gemini 3.x als
nicht unterstützt. Im nativen Modus entfernt GoModel diese vier Felder daher
für Gemini 3 und neuer (gemini-3-*, gemini-3.5-*, gemini-3.8-*, …) und
leitet sie für Gemini 2.5, Gemma und andere Modelle weiterhin weiter.
max_tokens, stop, Penalties, response_format und Thinking-Einstellungen
sind nicht betroffen.
Thought Signatures
Gemini 3 hängt den von ihm ausgegebenen Funktionsaufrufen eine verschlüsseltethoughtSignature an und lehnt einen Folge-Request ab (HTTP 400, „Function
call is missing a thought_signature“), wenn dieser Aufruf ohne Signatur im
Verlauf zurückkommt. Im nativen Modus stellt GoModel die Signatur auf dieselbe
Weise bereit wie Googles eigener OpenAI-kompatibler Endpunkt, sodass ein
Client, der Assistant-Nachrichten unverändert zurücksendet, weiterhin
funktioniert:
extra_content-Element erscheint bei gestreamten
tool_calls-Deltas, bei function_call-Ausgabeelementen der Responses API,
bei tool_use-Blöcken der Anthropic Messages API und (bei reinen
Text-Turns) an der Assistant-Nachricht selbst. Senden Sie es unverändert
zurück; nur der erste Aufruf eines parallelen Batches trägt eine Signatur.
Andere Provider sehen es nie; die gemeinsame Konvention ist unter
Extra Content, Thinking-Blöcke und Thought Signatures
beschrieben. Eine flache thought_signature (oder thoughtSignature) am
Tool-Aufruf oder an dessen function-Objekt wird ebenfalls akzeptiert, sodass
Clients, die für andere Gateways gebaut wurden, weiterhin funktionieren.
Enthält ein Gemini-3-Verlauf einen Funktionsaufruf ohne jede Signatur (die
Konversation begann mit einem anderen Modell, oder der Client hat das Feld
verworfen), sendet GoModel Googles dokumentierten Platzhalter
skip_thought_signature_validator, statt den 400 weiterzugeben. Die
Reasoning-Kontinuität ist für diesen Turn eingeschränkt, senden Sie daher
bevorzugt die echte Signatur zurück.
Bildeingabe
Für per URL gehostete Bilder im nativen Modus rufen Googles eigene Beispiele
zuerst die URL ab und senden die Bytes an
generateContent.
Videoeingabe
data:-URL zu einem eingebetteten Videoteil
(standardmäßig video/mp4, wenn die Data-URL keinen Medientyp angibt), während
URIs von YouTube, Files API und Cloud Storage als Dateireferenz gesendet
werden, die Gemini selbst auflöst. Jede andere entfernte https://...-URL wird
abgelehnt statt verworfen – laden Sie sie zuerst über die Gemini Files API
hoch.
Nachrichten und Tools
Im nativen Modus werden OpenAI-Chat-Felder wie folgt aufgenerateContent
abgebildet:
Gemini akzeptiert
allowedFunctionNames nur mit ANY oder VALIDATED.
Deshalb wird aus einer auto-Teilmenge VALIDATED: Das Modell kann weiterhin
mit Text antworten, aber jeder Aufruf, den es tätigt, ist auf die
aufgelisteten Tools beschränkt. VALIDATED gilt für den gesamten Request,
sodass ein einziges strict-Tool dazu führt, dass jedes deklarierte Tool
schemavalidiert wird.
Gemini bietet keine Möglichkeit, einen Turn auf einen einzigen
Funktionsaufruf zu beschränken, und das Benennen eines einzelnen Tools hilft
nicht: Gemini kann dieselbe Funktion in einem Turn mehrfach aufrufen. Wenn
parallel_tool_calls: false (oder Anthropics disable_parallel_tool_use)
wichtig ist, behandeln oder verwerfen Sie die zusätzlichen Aufrufe in Ihrem
Client.
Eine allowed_tools-Auswahl mit leerer tools-Liste wird mit 400 abgelehnt,
wie bei OpenAI.
Noch nicht integriert
- Automatisches Abrufen entfernter
image_url-Werte im nativen Modus. - Hochladen entfernter Bilder oder Videos über die Gemini Files API vor einem Chat-Request.