Lo streaming granulare degli strumenti è una funzionalità beta. Assicurati di valutare le tue risposte prima di utilizzarla in produzione.Utilizza questo modulo per fornire feedback sulla qualità delle risposte del modello, sull’API stessa o sulla qualità della documentazione—non vediamo l’ora di sentirti!
Quando utilizzi lo streaming granulare degli strumenti, potresti potenzialmente ricevere input JSON non validi o parziali. Assicurati di tenere conto di questi casi limite nel tuo codice.
Come utilizzare lo streaming granulare degli strumenti
Per utilizzare questa funzionalità beta, aggiungi semplicemente l’header betafine-grained-tool-streaming-2025-05-14 a una richiesta di uso degli strumenti e attiva lo streaming.
Ecco un esempio di come utilizzare lo streaming granulare degli strumenti con l’API:
make_file senza buffering per validare se il parametro lines_of_text è JSON valido. Questo significa che puoi vedere il parametro in streaming mentre arriva, senza dover aspettare che l’intero parametro venga bufferizzato e validato.
Con lo streaming granulare degli strumenti, i chunk di uso degli strumenti iniziano lo streaming più velocemente e sono spesso più lunghi e contengono meno interruzioni di parole. Questo è dovuto alle differenze nel comportamento di chunking.Esempio:Senza streaming granulare (ritardo di 15s):Con streaming granulare (ritardo di 3s):
Poiché lo streaming granulare invia parametri senza buffering o validazione JSON, non c’è garanzia che il flusso risultante si completi in una stringa JSON valida.
In particolare, se viene raggiunto il motivo di arresto
max_tokens, il flusso potrebbe terminare a metà di un parametro e potrebbe essere incompleto. Generalmente dovrai scrivere un supporto specifico per gestire quando viene raggiunto max_tokens.Gestione di JSON non valido nelle risposte degli strumenti
Quando utilizzi lo streaming granulare degli strumenti, potresti ricevere JSON non valido o incompleto dal modello. Se hai bisogno di passare questo JSON non valido di nuovo al modello in un blocco di risposta di errore, puoi avvolgerlo in un oggetto JSON per garantire una gestione corretta (con una chiave ragionevole). Per esempio:Quando avvolgi JSON non valido, assicurati di fare l’escape corretto di qualsiasi virgoletta o carattere speciale nella stringa JSON non valida per mantenere una struttura JSON valida nell’oggetto wrapper.