Come funziona ChatGPT, e cosa cambia davvero quando passi all'API
ChatGPT è un'applicazione di chat costruita sopra i modelli di linguaggio di OpenAI, e la distinzione fra l'applicazione e il modello che sta sotto spiega quasi tutto quello che sembra strano quando si passa dall'uso occasionale al lavoro vero. La documentazione per sviluppatori di OpenAI parte proprio da questa sovrapposizione, quando dice che con l'API si genera testo da un prompt "as you might using ChatGPT".
Chi costruisce prodotti ha bisogno di sapere una cosa in più rispetto a chi scrive nella casella di testo: dove finisce l'applicazione e dove comincia il modello. Le due parti hanno limiti diversi, costi diversi e regole diverse sui dati. Confonderle è il motivo per cui un prototipo che sembrava perfetto nella chat si comporta in un altro modo il giorno in cui lo si chiama da codice.
Come funziona ChatGPT, dal messaggio alla risposta
ChatGPT prende il testo scritto dall'utente, lo unisce ai messaggi precedenti della conversazione e passa il tutto a un modello, che genera la risposta prevedendo un pezzo di testo alla volta. Il meccanismo interno del modello l'ho raccontato in come funziona un modello di linguaggio: qui interessa lo strato sopra, quello che l'applicazione fa attorno al modello.
Quale modello risponda non è un dettaglio, perché i quattro modelli di punta non sono equivalenti per prezzo. La tabella dei modelli pubblicata da OpenAI e il suo listino mettono in fila i quattro di punta.
| Modello | Finestra di contesto | Taglio della conoscenza | Prezzo per milione di token |
|---|---|---|---|
| GPT-6 Astra | 1,05M | 30 aprile 2026 | 10 in ingresso, 50 in uscita |
| GPT-5.6 Sol | 1,05M | 16 febbraio 2026 | 4 in ingresso, 20 in uscita |
| GPT-5.6 Terra | 1,05M | 16 febbraio 2026 | 2 in ingresso, 12 in uscita |
| GPT-5.6 Luna | 1,05M | 16 febbraio 2026 | 0,20 in ingresso, 1,20 in uscita |
OpenAI descrive GPT-6 Astra come il modello più capace e GPT-5.6 Luna come quello pensato per i carichi sensibili al prezzo. Fra i due il rapporto sul testo in uscita è di poco più di quaranta a uno.
Perché a ogni turno la conversazione viene rispedita per intero
La continuità di una conversazione non vive dentro il modello. La guida di OpenAI sullo stato della conversazione lo scrive senza giri di parole: ogni richiesta di generazione di testo è indipendente e senza stato. La conversazione a più turni si ottiene passando i messaggi precedenti dentro la richiesta successiva, e la stessa guida spiega che alternando messaggi user e assistant si cattura lo stato precedente della conversazione dentro una sola richiesta.
Da qui discende la conseguenza economica che sorprende tutti la prima volta. Quella che sembra memoria è testo rispedito, e il testo rispedito si paga in ingresso a ogni turno, sempre. Una conversazione lunga non costa come una conversazione corta ripetuta molte volte: costa molto di più, perché ogni turno si porta dietro tutti i turni precedenti. È lo stesso conto che rende ridurre i token di un agente di coding un problema di selezione e non di potenza. OpenAI offre anche una Conversations API che conserva lo stato come oggetto durevole con un proprio identificativo, così da non dover concatenare i messaggi a mano, ma il conto dei token resta quello.
Il taglio della conoscenza, e perché spiega tanti errori
Il taglio della conoscenza è la data oltre la quale un modello non ha visto niente durante l'addestramento, e sui modelli di punta di OpenAI è dichiarato apertamente: 30 aprile 2026 per GPT-6 Astra, 16 febbraio 2026 per i tre GPT-5.6. Qualunque cosa sia successa dopo quella data, per il modello semplicemente non esiste.
Il problema non è che il modello lo ammetta. Il problema è che spesso non lo ammette: alla domanda su un fatto recente produce comunque una continuazione plausibile, perché prevedere testo è esattamente quello che sa fare. Le date della tabella qui sopra sono la parte misurabile di questo limite, ed è la prima cosa da guardare prima di affidare a un modello una domanda che dipende dal tempo.
Come fa ChatGPT a rispondere su fatti di oggi
La risposta su fatti recenti arriva da uno strumento esterno, non dalla memoria del modello. La documentazione di OpenAI sullo strumento di ricerca web lo descrive così: la ricerca web permette ai modelli di accedere a informazioni aggiornate da internet e di fornire risposte con citazioni delle fonti. Lo strumento si chiama web_search nella Responses API ed è supportato fra gli altri da gpt-6-astra e gpt-5.5.
Sapere questo cambia il modo in cui si legge una risposta. Quando il modello cita una fonte, il fatto arriva da quella pagina e va valutato come si valuta una pagina web. Quando non cita niente e parla di qualcosa avvenuto dopo il taglio, la risposta è una ricostruzione, per quanto sicura suoni.
Cosa cambia quando passi dalla chat all'API
Passando dalla chat all'API cambiano tre cose insieme: chi comanda dentro il prompt, chi tiene lo stato e cosa succede ai dati. La chat nasconde tutte e tre, e finché resta un giocattolo va benissimo. Diventa un problema quando il prototipo deve diventare un prodotto, che è il momento in cui i conti e le responsabilità cominciano a esistere.
Le istruzioni dello sviluppatore vengono prima di quelle dell'utente
Dentro l'API i messaggi non hanno tutti lo stesso peso. La guida alla generazione di testo di OpenAI stabilisce una gerarchia esplicita: i messaggi developer sono istruzioni fornite da chi sviluppa l'applicazione e hanno priorità sui messaggi user, che sono le istruzioni dell'utente finale. La stessa guida usa un paragone da programmatori, con le istruzioni dello sviluppatore nel ruolo delle regole del sistema e il messaggio dell'utente nel ruolo degli argomenti passati a una funzione.
Chi ha usato solo la chat non ha mai toccato questo strato, e infatti è il punto in cui i prototipi si rompono. Un comportamento ottenuto a forza di richieste gentili dentro la conversazione non si trasferisce: nel prodotto quella regola va scritta nel messaggio dello sviluppatore, dove sta sopra all'utente invece che accanto.
Dove finiscono i dati, secondo la documentazione dell'API
Sull'API di OpenAI la regola sui dati è scritta e datata. La pagina sui controlli dei dati dichiara che dal 1 marzo 2023 i dati inviati all'API di OpenAI non vengono usati per addestrare o migliorare i modelli, a meno di un consenso esplicito, e che i registri per il monitoraggio degli abusi sono conservati fino a trenta giorni salvo obblighi di legge.
La documentazione dell'API non dice nulla sui prodotti di consumo, che hanno condizioni proprie: è una distinzione che conta e che ho affrontato in dove finiscono i dati dell'intelligenza artificiale. Quando il problema è far ragionare un modello sui documenti interni senza consegnarli a nessuno, la domanda giusta non riguarda il modello ma l'architettura attorno, e si risponde collegando l'AI ai dati aziendali invece di caricarli in una chat.
Come lo uso io, e cosa tengo fuori dal modello
Nel repository di questo sito niente di quello che deve essere esatto viene chiesto al modello. I volumi di ricerca stanno in data/seo/volumi-keyword.json, con il campo di aggiornamento fermo al 1 agosto 2026, e le regole di scrittura stanno in tre file di testo dentro .claude/skills/articolo/. Vengono riletti da capo a ogni esecuzione, perché una sessione non sa niente della sessione precedente e un numero ricordato male è indistinguibile da un numero giusto.
È la stessa logica del taglio della conoscenza, applicata in piccolo: un dato che cambia nel tempo sta in un file con una data sopra, non nella testa del modello. Se il problema è portare documenti dentro la risposta in modo sistematico, il RAG serve in alcuni casi e in altri no, e conviene capire quale dei due prima di costruirlo.
La cosa concreta da fare è una sola e costa trenta secondi. Prima di fidarsi di una risposta che dipende dal tempo, si guarda il taglio dichiarato nella tabella dei modelli: se il fatto è successo dopo, o si passano i documenti nel contesto, o si attiva la ricerca web, oppure quella risposta è una ricostruzione. Vale per ChatGPT come vale per qualsiasi altro assistente, Claude compreso.
Domande frequenti
ChatGPT può leggere i documenti della mia azienda?
Un modello legge soltanto quello che si trova nella finestra di contesto al momento della richiesta, quindi i documenti aziendali vanno recuperati e infilati lì dentro da qualcosa che sta fuori dal modello. È il motivo per cui esistono i sistemi di recupero dei documenti: non si insegna il contenuto al modello, glielo si passa ogni volta. Il modello non conserva quei documenti dopo la risposta.
Perché ChatGPT sbaglia date e numeri anche quando sembra sicuro?
Un modello di linguaggio genera la continuazione più probabile del testo e non consulta un archivio mentre risponde, quindi una data plausibile viene prodotta con la stessa scioltezza di una data giusta. La sicurezza del tono non è un indicatore di affidabilità del contenuto. Per i fatti che cambiano nel tempo servono documenti passati nel contesto o uno strumento di ricerca collegato.
Meglio ChatGPT o Claude per chi scrive codice?
Dipende dal tipo di lavoro e vale la pena provarli entrambi sullo stesso compito prima di decidere, perché la differenza si vede sui passaggi lunghi e non sulle domande singole. La documentazione di OpenAI avverte che modelli diversi vanno interrogati in modo diverso per dare il meglio, e la stessa cosa vale passando da un fornitore all'altro: un prompt trasportato tale e quale rende meno.
Una finestra di contesto da un milione di token serve davvero?
I quattro modelli di punta di OpenAI dichiarano una finestra da 1,05 milioni di token, ma la finestra è spazio disponibile e non qualità garantita. Riempirla tutta costa, perché ogni token in ingresso si paga a ogni singolo turno. Conviene trattarla come un limite superiore da non avvicinare, non come un obiettivo da raggiungere.