API reference
Cosa tocchiamo nelle risposte
Le due sole cose che il gateway modifica in quello che il modello produce, e perché. Dichiarate, non nascoste.
Last updated: 2026-08-18
Cosa tocchiamo nelle risposte
Il gateway modifica due cose in quello che il modello produce. Nient'altro. Le scriviamo qui perché un servizio che si vende sul dire esattamente cosa fa non può riscrivere le risposte in silenzio.
1. I delimitatori interni del modello
Alcuni modelli, dopo una chiamata a strumento, lasciano nel testo i marcatori con cui separano i propri canali interni:
<|channel>thought
<channel|>OK. Ho creato il task per il cliente Rossi.
Quei simboli sono protocollo, non contenuto: chi mostrasse quel campo a uno
schermo li vedrebbe. Li togliamo, insieme alla parola thought se resta sola a
inizio riga.
L'elenco dei delimitatori è chiuso: <|channel>, <channel|>,
<|start|>, <|end|>, <|message|>, <|im_start|>, <|im_end|> e i
marcatori di ruolo. Una regola generica su <|…|> rischierebbe di mangiare
testo legittimo — per esempio una risposta che parla di sintassi — e non la
usiamo.
2. La parola «null» al posto del valore nullo
Negli argomenti di una chiamata a strumento, su un campo che ammette null, il
modello a volte scrive la stringa di quattro lettere. Un client che controlla
!== null la salva, e in banca dati finisce un record la cui descrizione dice
letteralmente «null».
Trasformiamo in null solo questi valori, e solo se il campo li contiene
per intero, dopo aver tolto gli spazi:
null none nil nessuno n/a undefined (stringa vuota)
Il confronto è senza distinzione fra maiuscole e minuscole. Una frase che
contiene la parola non viene toccata: "il campo era null e va corretto"
resta com'è.
Vale sugli argomenti delle chiamate a strumento, dove il campo ha un tipo dichiarato. Non tocchiamo il testo libero della risposta.
3. Il silenzio in ingresso
Non è una modifica della risposta, ma è della stessa famiglia e va detto.
Su audio senza suono, /v1/audio/transcriptions restituisce testo vuoto
senza interrogare il modello. Il motivo: su silenzio digitale whisper risponde
«Grazie.» o «Thank you.» con no_speech_prob a 0,0000, cioè con piena
fiducia. Su un percorso di dettatura un tocco accidentale sul microfono
diventerebbe un comando.
Il controllo misura l'energia dell'onda, non il giudizio del modello, e scatta sotto circa -50 dBFS — sotto ci stanno il silenzio digitale e un microfono chiuso, sopra ci sta qualunque parlato, anche sussurrato a un microfono lontano. Si applica solo ai file WAV a 16 bit: i formati compressi passano sempre, perché senza decodificarli non possiamo misurare e nel dubbio si trascrive. Un audio buono scartato è molto peggio di una allucinazione.
Quello che non tocchiamo
Il testo della risposta, i numeri, la lingua, la punteggiatura, l'ordine delle chiavi JSON. Se il modello sbaglia un totale, quel totale arriva a voi come l'ha scritto: sommate le righe e confrontate, come dovreste fare con qualunque fornitore.