Feinkörniges Tool-Streaming ist eine Beta-Funktion. Bitte stellen Sie sicher, dass Sie Ihre Antworten bewerten, bevor Sie sie in der Produktion verwenden.Bitte verwenden Sie dieses Formular, um Feedback zur Qualität der Modellantworten, der API selbst oder der Qualität der Dokumentation zu geben—wir können es kaum erwarten, von Ihnen zu hören!
Bei der Verwendung von feinkörnigem Tool-Streaming können Sie möglicherweise ungültige oder unvollständige JSON-Eingaben erhalten. Bitte stellen Sie sicher, dass Sie diese Grenzfälle in Ihrem Code berücksichtigen.
Wie man feinkörniges Tool-Streaming verwendet
Um diese Beta-Funktion zu verwenden, fügen Sie einfach den Beta-Headerfine-grained-tool-streaming-2025-05-14
zu einer Tool-Use-Anfrage hinzu und aktivieren Sie das Streaming.
Hier ist ein Beispiel, wie man feinkörniges Tool-Streaming mit der API verwendet:
make_file
zu streamen, ohne zu puffern, um zu validieren, ob der Parameter lines_of_text
gültiges JSON ist. Das bedeutet, Sie können den Parameter-Stream sehen, während er ankommt, ohne warten zu müssen, bis der gesamte Parameter gepuffert und validiert ist.
Mit feinkörnigem Tool-Streaming beginnen Tool-Use-Chunks schneller zu streamen und sind oft länger und enthalten weniger Wortumbrüche. Dies liegt an Unterschieden im Chunking-Verhalten.Beispiel:Ohne feinkörniges Streaming (15s Verzögerung):Mit feinkörnigem Streaming (3s Verzögerung):
Da feinkörniges Streaming Parameter ohne Pufferung oder JSON-Validierung sendet, gibt es keine Garantie, dass der resultierende Stream in einem gültigen JSON-String abgeschlossen wird.
Insbesondere, wenn der Stopp-Grund
max_tokens
erreicht wird, kann der Stream mitten in einem Parameter enden und unvollständig sein. Sie müssen im Allgemeinen spezifische Unterstützung schreiben, um zu handhaben, wenn max_tokens
erreicht wird.Umgang mit ungültigem JSON in Tool-Antworten
Bei der Verwendung von feinkörnigem Tool-Streaming können Sie ungültiges oder unvollständiges JSON vom Modell erhalten. Wenn Sie dieses ungültige JSON in einem Fehlerantwort-Block an das Modell zurückgeben müssen, können Sie es in ein JSON-Objekt einschließen, um eine ordnungsgemäße Behandlung zu gewährleisten (mit einem vernünftigen Schlüssel). Zum Beispiel:Beim Einschließen von ungültigem JSON stellen Sie sicher, dass Sie alle Anführungszeichen oder Sonderzeichen in der ungültigen JSON-Zeichenkette ordnungsgemäß maskieren, um eine gültige JSON-Struktur im Wrapper-Objekt aufrechtzuerhalten.