Einführung
OpenAI-kompatibler Chat für Gemini 3.7 Flash. Ein Lesefenster von 1.048.576 Token, drei Denkstufen, 128 Werkzeugschemas und JSON-Ausgabe in einem synchronen Aufruf, auf Wunsch als SSE-Strom.
Gemini 3.7 Flash ist Googles schnelles Flash-Modell für alltägliche Programmierarbeit, Werkzeugaufrufe von Agenten und verlässliche mehrstufige Ausführung; hier erscheint es als ein einziger OpenAI-kompatibler Chat-Endpunkt. Eine Anfrage liest bis zu 1.048.576 Token und antwortet mit bis zu 65.536, die Denkstufe wechselt Zug um Zug zwischen low, medium und high, Werkzeugaufrufe und JSON-Ausgabe sind nach OpenAI-Art geschrieben.
Wichtige Funktionen und Highlights
Schnell genug für die Schleife selbst
Ein Agent, der plant, ein Werkzeug ruft, das Ergebnis liest und erneut entscheidet, verbringt den größten Teil der realen Laufzeit mit Warten auf das Modell. Genau für diesen Zuschnitt ist dieses Modell gebaut – alltägliche Programmierarbeit, Werkzeugnutzung, mehrstufige Ausführung –, deshalb schließt sich die Schleife zügig, statt bei jedem Schritt zu stocken.
Drei Stufen, je Zug entschieden
low, medium und high, Vorgabe ist medium. Es ist eine Zeichenkette im selben Anfragekörper: Der Routineschritt läuft auf low, der Schritt, der sitzen muss, geht auf high. Eine Stufe minimal gibt es bei diesem Modell nicht – Googles eigene API weist sie ab, und dieser Endpunkt weist sie ebenfalls ab, statt sie stillschweigend umzuschreiben.
1.048.576 Token in einer Anfrage
Ein ganzes Modul samt Tests, ein langes Agentenprotokoll mit allen Werkzeugergebnissen oder ein Stapel Dokumente in einem Durchgang. Die Obergrenze zählt System-Nachricht, Verlauf und Werkzeugausgabe zusammen – das Budget gehört also dem Verlauf und nicht der letzten Nachricht.
Request-Parameter
| Parameter | Pflicht | Beschreibung |
|---|---|---|
messages | Ja | Geordnete Züge, das älteste zuerst. Der Inhalt ist ein String oder ein Array aus text-, image_url- und video_url-Teilen. mindestens 1 Einträge |
max_tokens | Nein | Deckelt die Antwort bei 65.536, die Vorgabe ist 16.384. |
reasoning_effort | Nein | minimal, low, medium oder high; medium ist die Vorgabe. Routineschritte laufen gut auf low, und der Schritt, der sitzen muss, lässt sich einzeln auf high heben. |
stop | Nein | Bis zu 4 Sequenzen, als String oder Array. Die Antwort endet, sobald das Modell eine davon schreibt; der getroffene Text selbst wird nicht zurückgegeben. mindestens 1 Zeichen · mindestens 1 Einträge · höchstens 4 Einträge |
seed | Nein | Beliebige Ganzzahl. |
temperature | Nein | 0 bis 2, Vorgabe 1. Google empfiehlt für Gemini-3-Modelle ausdrücklich, bei 1,0 zu bleiben – niedrigere Werte können zu Schleifen oder schwächerer Qualität führen. |
top_p | Nein | 0,01 bis 1. Verstellen Sie dies oder temperature, nie beides im selben Vergleich. |
tools | Nein | Bis zu 128 Funktionsdefinitionen je Anfrage. höchstens 128 Einträge |
tool_choice | Nein | auto, none, required – oder ein Objekt, das eine Funktion benennt. |
response_format | Nein | Verlangen Sie ein JSON-Objekt und benennen Sie jeden Schlüssel in der System-Nachricht – so kommen Extraktionsergebnisse parsbar zurück. |
Preis
Eingabe $0.675 / Ausgabe $3.375 je 1 Mio. Token
Anwendungsfälle
Alltägliche Programmierarbeit
Ein Diff lesen und sagen, was es ändert; den fehlenden Test schreiben; aus einem Stacktrace einen Patch machen. Das sind kurze, häufige Anfragen, bei denen die Zeit bis zum ersten Token darüber entscheidet, ob das Werkzeug überhaupt benutzt wird.
Werkzeugschleifen für Agenten
Bis zu 128 Funktionsdefinitionen je Anfrage, dazu tool_choice, um einen bestimmten Aufruf zu erzwingen oder gar keinen zuzulassen. Werkzeugaufrufe kommen in OpenAI-Form zurück, eine bestehende Agentenlaufzeit braucht also nur eine andere Modell-Kennung.
Mehrstufige Ausführung über einen langen Verlauf
Ein Agent, der bereits sechs Werkzeuge gerufen hat, trägt alle sechs Ergebnisse in die nächste Anfrage. Ein Fenster von 1.048.576 Token hält diesen Verlauf zusammen, statt auf halber Strecke einen Zusammenfassungsschritt zu erzwingen.
Strukturierte Extraktion in großer Zahl
Fordern Sie mit response_format ein JSON-Objekt an, benennen Sie jeden Schlüssel in der System-Nachricht. Logzeilen zu Feldern, Tickets zu Etiketten, Freitext zu einem Schema – der Preis je Aufruf entscheidet, ob sich die Arbeit überhaupt lohnt.
Prompt-Leitfaden und Praxistipps
Erst Platz fürs Denken lassen, dann die Antwort deckeln
Auf der Vorgabe medium überlegt das Modell, bevor es schreibt, und dieses Überlegen kommt aus demselben max_tokens-Budget wie die Antwort. Ein enges Limit verbraucht das Budget fürs Abwägen und liefert eine leere Zeichenkette. Geben Sie max_tokens echten Spielraum – für eine Code-Antwort einige Tausend – oder senken Sie reasoning_effort auf low, wenn die Antwort kurz sein soll und nicht abgewogen werden muss.
Die Stufe je Zug wechseln, nicht je Anbindung
Lassen Sie die Routineschritte der Schleife auf low laufen, das bringt das erste Token früher, und schicken Sie den Schritt, der sitzen muss, auf high. Gleicher Endpunkt, gleicher Körper, eine Zeichenkette anders.
Grenzen, die Sie einplanen sollten
reasoning_effort nimmt ausschließlich low, medium und high. Googles API weist minimal bei diesem Modell ab, deshalb weist dieser Endpunkt den Wert ebenfalls ab, statt ihn stillschweigend durch einen anderen zu ersetzen. Das Antwortlimit liegt bei 65.536 Token, ein höherer max_tokens-Wert scheitert direkt an der Prüfung. Der Nachrichteninhalt besteht aus Text, Bildern und Video, Audioteile werden abgelehnt. Video wird als hochgeladene Datei gesendet, und das Video einer Anfrage darf insgesamt 14 MB betragen.
API-Schnellstart
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "google/gemini-3.7-flash/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
Authentifizierung, vollständiges Schema, Polling und Fehlerbehandlung stehen in der API-Referenz.












