generateContent und streamGenerateContent.
Unterschiede zur Chat Completions API
Die Gemini Generate Content API verwendet das offizielle native Anfrageformat von Google (Feldcontents) statt des OpenAI-kompatiblen Formats (Feld messages). Wenn du bereits das Google Gemini SDK verwendest oder mit dem offiziellen API-Format vertraut bist, kannst du diese API direkt verwenden, ohne das Anfrageformat ändern zu müssen.
Aktuell unterstützter Umfang
Die Schnittstelle akzeptiert Text-, Bild-, Video- und Audioeingaben (inlineData oder fileData), Denk-Konfigurationen sowie benutzerdefinierte Funktionsdeklarationen. Für Audioausgaben, integrierte Tools und native Felder wie explizites Kontext-Caching besteht derzeit keine einheitliche Verfügbarkeitsgarantie; maßgeblich ist die tatsächliche Rückgabe des jeweiligen Modells.
Wenn du Dateien wie Audio über fileData.fileUri übermittelst, stelle sicher, dass die Datei direkt über HTTPS zugänglich ist, nicht von einem Login-Status abhängt und die Gültigkeitsdauer des signierten Links die gesamte Verarbeitungszeit der Anfrage abdeckt. Bei nicht-streamender Audioanalyse wird das Ergebnis erst zurückgegeben, nachdem das Modell die Verarbeitung abgeschlossen hat, was mehr als 90 Sekunden dauern kann; der Client sollte je nach Dateigröße und Geschäftsszenario einen ausreichend langen Gesamt-Timeout festlegen, um zu vermeiden, dass die Verbindung getrennt wird, während der Server noch verarbeitet.
Antragsprozess
Bevor du die Gemini Generate Content API verwendest, besuche bitte die Seite Gemini Generate Content API und klicke auf die Schaltfläche „Abrufen“, um die für die Anfrage erforderlichen Zugangsdaten zu erhalten. Falls du noch nicht angemeldet oder registriert bist, wirst du automatisch zur Anmeldeseite weitergeleitet. Bei der ersten Beantragung gibt es ein kostenloses Kontingent.Grundlegende Verwendung
Non-Streaming (nicht-streamend)
Sende eine POST-Anfrage an/v1beta/models/{model}:generateContent:
Hinweis: Flash der Seriegemini-3.xist ein Denkmodell und verbraucht zuerst Reasoning-Tokens; setzegenerationConfig.maxOutputTokensauf mindestens 512, da andernfalls möglicherweise nur leere Inhalte zurückgegeben werden.
usageMetadata werden gemäß der nativen Gemini-Semantik abgerechnet:
promptTokenCountenthältcachedContentTokenCount; der aus dem Cache abgerufene Teil wird zum Preis für Cache-Lesezugriffe berechnet und nicht erneut als reguläre Eingabe gezählt.promptTokensDetailsundcacheTokensDetailswerden unterusage.prompt_tokens_detailsintext_tokens,image_tokens,video_tokens,audio_tokenssowie die entsprechendencached_*-Details normalisiert. Diese Werte sind jeweils inprompt_tokensundcached_tokensenthalten; unterschiedliche Modalitäten werden nur nach ihren jeweiligen Preisen neu berechnet und nicht doppelt abgerechnet.candidatesTokenCountundthoughtsTokenCountwerden beide zum Preis für Ausgabe-Tokens berechnet.toolUsePromptTokenCountsind eigenständige Tool-Eingabe-Tokens und werden zum Preis für Eingabe-Tokens berechnet.
usage-Objekt zurück; modellübergreifend werden die Kosten dieses Aufrufs einheitlich aus usage.cost gelesen. cost ist eine optionale Kostenvorschau; wenn die Preisvorschau vorübergehend nicht verfügbar ist, wird die Modellantwort dennoch normal zurückgegeben, kann dieses Feld jedoch nicht enthalten. Die endgültige Abrechnung richtet sich nach den Nutzungsaufzeichnungen.
Streaming (streamend)
Sende eine POST-Anfrage an/v1beta/models/{model}:streamGenerateContent?alt=sse:
usageMetadata und das normalisierte usage, die Kosten befinden sich weiterhin in usage.cost:
data: [DONE]. Wenn die Preisvorschau des Endzustands vorübergehend nicht verfügbar ist, gibt usage weiterhin die Token-Nutzung zurück, lässt jedoch cost weg.
Unterstützte Modelle
Erweiterte Funktionen
Systemanweisungen
Generierungskonfiguration
JSON-Modus
Denkmodus (Thinking)
Modelle, die die Denkfunktion unterstützen (wie gemini-2.5-flash, gemini-2.5-pro), können den Denkmodus aktivieren:Funktionsaufruf
Mehrturn-Dialog
Bildverständnis
Sicherheitseinstellungen
Die Inhaltsfilterung kann übersafetySettings gesteuert werden:

