Zum Hauptinhalt springen
Aktiviere Streaming mit stream: true und definiere clientseitige Tools mit dem Schema deiner API. Die Unterstützung für Streaming und Tool-Aufrufe hängt vom Modell ab; teste eine kleine Anfrage mit deiner Model ID, bevor du diese Funktionen in einer Anwendung nutzt.

Voraussetzungen

Führe zuerst mit den SDK-Beispielen eine reine Textanfrage erfolgreich aus. Kopiere aus der model plaza die exakte Model ID für das zu testende Protokoll. Die Anleitung zur Modellauswahl erklärt, was du prüfen solltest. Installiere openai und anthropic in der virtuellen Python-Umgebung deines Projekts und ersetze die Platzhalter im selben Terminal:
Jeder folgende Python-Block lässt sich unabhängig ausführen. Der Timeout von 120 Sekunden ist ein Beispiel für diese kurzen Tests; wähle den Timeout deiner Anwendung anhand der Timeout-Hinweise. Prüfe die Limits für Ausgabetokens des Modells, bevor du max_tokens oder max_output_tokens festlegst.

Textantworten streamen

Streaming überträgt vom Server gesendete Ereignisse (SSE) innerhalb einer HTTP-Antwort. Ein SSE-Ereignis ist nicht unbedingt ein vollständiger Satz oder ein vollständiges JSON-Argumentobjekt. Das SDK verarbeitet das SSE-Format für dich. Diese Beispiele geben Textfragmente und Abschlussinformationen aus; Anwendungen sollten auch Fehlerereignisse behandeln.

Ein Wetter-Tool für jedes Protokoll definieren

Das Modell fordert einen Funktionsaufruf an; deine Anwendung prüft die Argumente, führt die Funktion aus und gibt das Ergebnis zurück. Die Beispiele verwenden eine Funktion get_weather mit einem Argument location und liefern feste Demodaten, keine aktuellen Wetterdaten. Du benötigst weder einen Wetterdienst noch einen zusätzlichen Key. Die Unterstützung hängt von Modell und Protokoll ab. Teste diese kleine Tool-Anfrage mit deiner Model ID auch dann, wenn reiner Text bereits funktioniert. Eine Tool-Deklaration aktiviert keine gehostete Suche oder andere vom Anbieter ausgeführte Tools.

Einen Tool-Aufruf ausführen und das Ergebnis zurückgeben

Diese Beispiele ohne Streaming zeigen einen vollständigen Ablauf von Aufruf und Ergebnis, damit du die vollständigen Argumente prüfen kannst. Jedes Beispiel verarbeitet alle Tool-Aufrufe der ersten Antwort und erlaubt eine Folgeanfrage. Ein längerer Agenten-Workflow benötigt eine eigene begrenzte Schleife und eine Abbruchbedingung.
Bewahre die vollständige Assistentenantwort auf, bevor du Tool-Ergebnisse ergänzt. Behalte bei Responses alle Elemente aus output, einschließlich zurückgegebener Reasoning-Elemente. Bewahre bei Messages die Inhaltsblöcke und ihre Reihenfolge. Ordne Ergebnisse den zurückgegebenen Aufruf-IDs zu, statt eigene IDs zu erfinden.

Häufige Fragen

Kann ich Tool-Argumente sofort beim Eintreffen ausführen?

Sammle Fragmente anhand des Tool-Aufrufindex oder der Element-ID. Parse und validiere anschließend die vollständigen Argumente. Unvollständiges JSON lässt sich möglicherweise nicht parsen. Beginne mit den Beispielen ohne Streaming, bevor du Streaming und Tools kombinierst.

Warum funktioniert reiner Text, während Tools fehlschlagen?

Die Unterstützung hängt von Modell und Protokoll ab; prüfe eine kleine Tool-Anfrage mit deiner Model ID. Kontrolliere Tool-Schema, zurückgegebene Argumente, Ergebnis-ID und Nachrichtenreihenfolge. Für typisierte JSON-Validierung hilft die FAQ zu strukturierten Ausgaben.

Sollte ich einen unterbrochenen Stream erneut anfordern?

Prüfe vor dem erneuten Senden den Anfrageeintrag. Ein Verbindungsabbruch zeigt nicht, ob die Anfrage abgeschlossen wurde. Eine Wiederholung startet einen weiteren Versuch und darf keine bereits ausgeführte Tool-Aktion wiederholen. Siehe Hinweise zu Fehlern und Wiederholungen.

Weitere Informationen

Offizielle Referenzen

Diese Referenzen definieren die Protokollfelder der Anbieter. Prüfe die Funktion mit deiner BetterToken Model ID, bevor du sie verwendest.