Gemini 4 Argon API: Python-Chat mit nativem Streaming
Gemini 4 Argon API mit Python: natives SSE lesen, signierte Inhalte erhalten, leere Antworten behandeln und den Tokenverbrauch einer Unterhaltung prüfen.
Als Markdown lesenEine Unterhaltung mit der Gemini 4 Argon API verwendet native Gemini-Inhalte: contents, Rollen und parts. Die erste Anfrage ist klein. Schwieriger ist es, die Antwort vor einer Anschlussfrage korrekt zu speichern. Wer eine Modellrunde nur aus dem sichtbaren Text rekonstruiert, kann signierte Inhalte verlieren. Eine leere Ladenachricht im Verlauf kann die nächste Anfrage ungültig machen.
Diese Anleitung verwendet die Python-Standardbibliothek und den nativen Endpunkt von SeedRouter. Sie behandelt Textchat und Streaming. Die vollständige API-Referenz beschreibt die gesamte Parameterspezifikation; dieser Artikel verfolgt eine Anfrage bis zu einer nutzbaren Unterhaltung.
Vor der ersten Anfrage
Sie benötigen Python 3, einen SeedRouter-API-Schlüssel und ausreichend Kontoguthaben. Speichern Sie den Schlüssel in einer Umgebungsvariable namens SEEDROUTER_API_KEY; er gehört weder in den Quellcode noch in ein an den Browser ausgeliefertes Bundle. Jede gesendete Nachricht kann Kosten verursachen. Das Beispiel führt weder automatische Wiederholungen noch Fortsetzungsanfragen aus.
Die Modell-ID lautet gemini-4-argon und gehört in den Endpunktpfad. Google dokumentiert dieses Format in seinem Leitfaden zur nativen Generierung. SeedRouter verwendet die unten gezeigte Bearer-Authentifizierung.
Eine Anfrage an die Gemini 4 Argon API senden
curl --no-buffer --fail-with-body \
'https://api.seedrouter.ai/v1beta/models/gemini-4-argon:streamGenerateContent?alt=sse' \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"contents":[{"role":"user","parts":[{"text":"Explain a mutex in one sentence."}]}],"generationConfig":{"maxOutputTokens":1024,"thinkingConfig":{"thinkingLevel":"low"}}}'Die Antwort besteht aus einer Folge von Server-Sent Events, nicht aus einem einzelnen JSON-Dokument. Jedes data:-Ereignis enthält natives Gemini-JSON. Sichtbarer Text steht in candidates[].content.parts[].text; manche Teile enthalten stattdessen Thinking oder Signaturen. usageMetadata kann getrennt vom Text eintreffen. Lesen Sie deshalb bis zum letzten Ereignis, bevor Sie die Antwort als vollständig betrachten.
Dieses bewusst kleine Ausgabebudget dient einer ersten Funktionsprüfung. Auch Thinking verbraucht das Budget, daher kann die Antwort unvollständig bleiben. Erhöhen Sie es für schwierigere Aufgaben gezielt; machen Sie aus einer unvollständigen Antwort keine unsichtbare Wiederholungsschleife.
Eine Unterhaltung mit zwei Runden in Python ausführen
Laden Sie das vollständige Python-Beispiel herunter, speichern Sie es lokal und führen Sie es aus:
python3 gemini-4-argon-chat.pyFragen Sie zuerst „Explain a mutex in one sentence“ und danach „Give a Python example of that idea“. Das Skript wartet vor jeder Anfrage auf Ihre Eingabe. Eine leere Zeile beendet es. Die zentrale Regel für den Verlauf lautet:
user = {"role": "user", "parts": [{"text": text}]}
body = {"contents": [*history, user]}
history = [*history, user, {"role": "model", "parts": parts}]Das herunterladbare Skript liefert außerdem die Generierungseinstellungen, parst SSE-Frames und gibt nur Text aus, der nicht als Thinking markiert ist. Es übernimmt den Verlauf erst, wenn der Abschlussgrund STOP vorliegt und parts nicht leer ist. Bei einem API-Fehler, einem unterbrochenen Stream oder einer leeren Antwort bleibt der bisherige Verlauf erhalten. Eine Nachricht wird nicht stillschweigend erneut gesendet.
Der kurze Ausschnitt oben erläutert die Datenstruktur. Für die vollständige Anfrageverarbeitung führen Sie die gesamte Datei aus. Für Antworten ohne Streaming heißt die entsprechende Operation generateContent; die Referenzbeispiele zeigen cURL, Python, Node.js und Go.
Native parts speichern, nicht die Ladeanzeige
Die zweite Anfrage sollte drei tatsächliche Gesprächsrunden enthalten: die erste Nutzernachricht, die abgeschlossene Modellantwort und die zweite Nutzernachricht. Der Platzhalter „Denkt nach …“ in der Oberfläche ist keine weitere Modellrunde.
Ein Fehler wie contents.3.parts: Too small: expected array to have >=1 items bedeutet, dass der vierte Inhaltseintrag ein leeres parts-Array enthält. Der Index beginnt bei null. Prüfen Sie den Aufbau des Verlaufs, bevor Sie den Prompt oder das Modell ändern. Eine Ladeanzeige gehört zum Anzeigezustand; sie darf in der Anfrage niemals zu { "role": "model", "parts": [] } werden.
Bewahren Sie sämtliche zurückgegebenen Teile in ihrer Reihenfolge auf, einschließlich thoughtSignature und aller als Thinking markierten Teile, auch wenn die Oberfläche sie ausblendet. Googles Leitfaden zu Thought-Signaturen erklärt, warum diese opaken Felder in späteren Runden erhalten bleiben müssen. Bearbeiten, erfinden oder rekonstruieren Sie keine Signatur. Speichern Sie den nativen Verlauf getrennt vom Text, den Ihre Oberfläche anzeigt.
Für Unterhaltungen mit Tools gilt derselbe Grundsatz. Ein Tool auszuführen und sein Ergebnis zurückzugeben erfordert jedoch eine umfangreichere Anwendungsschleife. Dieses Textbeispiel implementiert diese Schleife nicht und sollte nicht als vollständiger Coding-Agent dargestellt werden.
Nutzung auslesen und Abbrüche behandeln
Bewahren Sie bei direkten Anfragen die zuletzt im Stream gemeldeten Nutzungswerte auf. Addieren Sie nicht die wiederholten kumulativen Zwischenstände derselben Anfrage. Die gewöhnliche Eingabe entspricht promptTokenCount minus cachedContentTokenCount; die berechnete Ausgabe umfasst sowohl candidatesTokenCount als auch thoughtsTokenCount. Der Preisleitfaden zeigt, wie Sie diese Werte in ein Budget umrechnen.
Ctrl+C beendet das Beispiel, ohne weitere Anfragen zu senden. Wenn Sie lokal nicht mehr lesen, beweist das nicht, dass die entfernte Generierung keine Token verbraucht hat. Endet der Stream vor der Nutzungsangabe, prüfen Sie die Nutzungsaufzeichnung Ihres Kontos. Das Beispiel schließt die unvollständige Runde vorsichtshalber aus dem künftigen Verlauf aus. Ob Teilantworten erhalten bleiben sollen, ist eine separate Entscheidung beim Anwendungsdesign.
Long Decode ist ein weiterer, eigenständiger Fall. Der Abschlussgrund CONTINUATION setzt die ursprüngliche Generierung mit einem Fortsetzungstoken fort; er steht nicht für eine neue Nutzernachricht. Google verlangt die ursprüngliche Anfrage und das neueste Token, ohne Teilausgaben an contents anzuhängen. Siehe den Leitfaden zu Long Decode. Dieses Einstiegsskript hält an, statt eine automatische Fortsetzung zu implementieren.
Was wurde verifiziert?
Einfaches Text-Streaming hat über den SeedRouter-Playground eine lokale Ende-zu-Ende-Prüfung bestanden. Parsing und Verlaufsverwaltung des Beispiels werden mit synthetischen Streams geprüft, darunter signierte Teile, leere Antworten und Unterbrechungen. Diese Testdaten prüfen Software; sie sind keine zusätzlichen Modellaufrufe. Tools, Medien und Fortsetzung benötigen jeweils eigene Funktionsprüfungen, bevor sie als verifizierte Integrationen beschrieben werden können.
Fragen zur API
Kann ich einen OpenAI-Modellnamen durch gemini-4-argon ersetzen?
Das allein wandelt keine Nachrichtenformate um. Diese Anleitung verwendet Geminis native contents und parts. Prüfen Sie, ob der Client dieses Protokoll sowie die von Ihnen konfigurierte Authentifizierung und den Endpunkt unterstützt.
Warum ist die Antwort leer, obwohl Token verbraucht wurden?
Thinking kann das Ausgabebudget aufbrauchen. Auch Sicherheitseinstellungen oder eine unvollständige Generierung können sichtbaren Text verhindern. Prüfen Sie den Abschlussgrund und die Nutzung. Fügen Sie keine leere Modellrunde ein und wiederholen Sie die kostenpflichtige Anfrage nicht automatisch.
Bedeutet eine Million Token Kontext eine Million Ausgabetoken?
Nein. Eingabe, Thinking und Ausgabe teilen sich den Kontext. Lange Generierungen unterliegen außerdem Grenzen pro Anfrage und können eine Fortsetzung benötigen. Planen Sie für die gemeinsame Gesamtmenge, nicht für getrennte Eingabe- und Ausgabekontingente.
Funktionen hinzufügen, sobald die Unterhaltung funktioniert
Beginnen Sie mit einer vollständigen Antwort. Prüfen Sie dann, ob die zweite Runde die ursprünglichen nativen Inhalte erhält. Halten Sie bei der Ergänzung von Anhängen, Tools oder dauerhafter Speicherung den Verlauf der Gemini 4 Argon API vom Anzeigezustand getrennt. Der Modell-Playground und der Zugangsleitfaden sind die nächsten Anlaufstellen für die interaktive Nutzung und die Kontoanforderungen.



