Vai al contenuto

GPT 6 Luna: come passare dall’API di GPT-4o prima del 14 gennaio

Illustrazione 3D di uno sviluppatore al PC con un calendario segnato e un cristallo luminoso sulla scrivania.
Immagine generata con IA

In un progetto che usa l’API di OpenAI il modello è indicato da una stringa, e la stessa stringa può trovarsi in più punti. Per esempio gpt-4o-2024-08-06 in un file di configurazione, gpt-4o-mini-2024-07-18 in uno script che nessuno apre da mesi, un’altra copia in una variabile d’ambiente. Il 14 gennaio 2027 OpenAI spegne queste versioni di GPT-4o e GPT-4o mini e indica gpt-6-luna come sostituto. Questa guida è per chi sviluppa con l’API su Windows, macOS o Linux. Si cercano gli ID da cambiare, si sostituiscono e si controlla con l’endpoint Models che il nuovo modello non abbia una data di spegnimento annunciata. I comandi sono quelli della documentazione ufficiale, elencata in fondo.

Cosa serve

  • Una chiave API creata nella dashboard di OpenAI, come spiega la guida rapida per sviluppatori.
  • Un terminale: PowerShell su Windows, il terminale di sistema su macOS e Linux.
  • Il codice sorgente del progetto, insieme ai file di configurazione e all’elenco delle variabili d’ambiente usate in produzione.
  • Per la verifica finale, curl e una shell che accetti la sintassi del comando documentato, cioè quella di macOS e Linux.
  • Un ambiente di test separato dalla produzione, dove provare il nuovo modello.

Leggere la pagina dei ritiri e individuare il proprio modello

Prima di modificare il codice bisogna sapere quali ID sono coinvolti e con quale data. Le informazioni stanno nella pagina Deprecations di OpenAI. La sezione da guardare porta la data 2026-10-14: quel giorno OpenAI ha avvisato chi usa alcuni modelli della serie GPT-4 che saranno rimossi dall’API il 14 gennaio 2027. La pagina cambia nel tempo, quindi va riletta il giorno in cui si fa la migrazione. La tabella riporta i dati consultati il 19 ottobre 2026.

Modello ID Spegnimento Sostituto raccomandato
GPT-4o gpt-4o-2024-08-06, gpt-4o-2024-11-20 14 gennaio 2027 gpt-6-luna
GPT-4o mini gpt-4o-mini-2024-07-18 14 gennaio 2027 gpt-6-luna
GPT-4.1 gpt-4.1-2025-04-14 14 gennaio 2027 gpt-6-luna
GPT-4.1 mini gpt-4.1-mini-2025-04-14 14 gennaio 2027 gpt-6-luna
GPT-4o (prima versione) gpt-4o-2024-05-13 23 ottobre 2026 gpt-5.6-sol

Lo stesso annuncio comprende anche GPT-4.1 e GPT-4.1 mini, con lo stesso sostituto. Le versioni fine-tuned, cioè quelle riaddestrate a partire da uno di questi modelli, seguono il calendario del modello base. Fa eccezione gpt-4o-2024-05-13: appartiene a un annuncio precedente, si spegne il 23 ottobre 2026 e come sostituto ha gpt-5.6-sol, non gpt-6-luna.

Diversi modelli audio hanno un nome che comincia con gpt-4o ma seguono un calendario diverso. Le famiglie gpt-4o-audio e gpt-4o-realtime si spengono il 20 gennaio 2027, con gpt-audio-1.5 e gpt-realtime-2.1 come sostituti. gpt-4o-transcribe e gpt-4o-mini-transcribe si spengono il 26 febbraio 2027 e vanno sostituiti con gpt-live-transcribe o gpt-transcribe. I modelli di sintesi vocale gpt-4o-mini-tts-2025-03-20 e gpt-4o-mini-tts-2025-12-15 si spengono il 6 gennaio 2027, con gpt-realtime-2.1-mini come sostituto. Quindi non tutto ciò che contiene «gpt-4o» va trasformato in gpt-6-luna.

La stessa pagina indica i preavvisi minimi: almeno sei mesi per i modelli generalmente disponibili e almeno tre mesi per le loro varianti specializzate, come quelle chat, Codex o deep research, salvo motivi di sicurezza o di conformità. Tra l’annuncio del 14 ottobre 2026 e lo spegnimento del 14 gennaio 2027 passano tre mesi. La pagina non spiega perché questo intervallo valga per GPT-4o e GPT-4.1, che non compaiono fra gli esempi di varianti specializzate.

Impostare la chiave API nel terminale

Il codice di prova e le chiamate di verifica devono trovare la chiave in una variabile d’ambiente, cioè un valore che il sistema passa ai programmi avviati dal terminale. Secondo la guida rapida, gli SDK ufficiali leggono la chiave da lì in automatico. In entrambi i comandi your_api_key_here va sostituito, tra le virgolette, con la chiave creata nella dashboard.

Su macOS e Linux:

export OPENAI_API_KEY="your_api_key_here"

Su Windows, in PowerShell:

setx OPENAI_API_KEY "your_api_key_here"

La guida rapida mostra solo il comando e non dice altro su setx. Un’indicazione pratica, che non viene dalle pagine citate qui: se il codice o gli script non trovano la variabile, chiudere la finestra di PowerShell e aprirne una nuova prima di riprovare. La chiave dà accesso al proprio account, e OpenAI raccomanda di conservarla in un posto sicuro, per esempio un file .zshrc o un altro file di testo sul proprio computer.

Cercare gli ID dei modelli su Windows con Select-String

Su Windows la ricerca nei file si fa con Select-String, un cmdlet di PowerShell che la documentazione Microsoft paragona a grep. Questo è l’esempio ufficiale:

Select-String -Path .\*.txt -Pattern 'Get-'

Il comando cerca Get- in tutti i file .txt della cartella corrente e, per ogni riga trovata, stampa nome del file, numero di riga e testo. Nell’esempio Microsoft la cartella contiene Alias.txt e Command.txt, e l’output è questo:

Alias.txt:8:Alias cat -> Get-Content
Alias.txt:28:Alias dir -> Get-ChildItem
Alias.txt:43:Alias gal -> Get-Alias
Command.txt:966:Cmdlet Get-Acl
Command.txt:967:Cmdlet Get-Alias

Per cercare gli ID dei modelli si cambiano due valori:

  • -Pattern: al posto di 'Get-' si scrive l’ID da cercare, per esempio 'gpt-4o', che trova anche gpt-4o-mini e le varianti audio. Poi si ripete la ricerca con 'gpt-4.1'.
  • -Path: al posto di .\*.txt si indicano i file del progetto, per esempio i .py, .js, .ts o il file .env. Il parametro accetta i caratteri jolly ma non una cartella da sola: se si indica solo una directory, il comando fallisce.

Il valore di -Pattern viene letto come espressione regolare, cioè come uno schema in cui alcuni caratteri hanno un significato speciale: il punto di gpt-4.1 sta per «qualsiasi carattere». Per cercare il testo esattamente com’è scritto si aggiunge -SimpleMatch. Per cercare anche nelle sottocartelle, l’esempio 6 della pagina Microsoft passa a Select-String l’elenco dei file prodotto da Get-ChildItem con -Recurse.

Cercare gli ID dei modelli su macOS e Linux con grep

Su macOS e Linux si usa grep. Questo è l’esempio del manuale di GNU grep:

grep -r 'hello' /home/gigi

L’opzione -r legge tutti i file della cartella indicata e delle sue sottocartelle. 'hello' è il testo da cercare e /home/gigi la cartella di partenza. Per la migrazione si sostituisce 'hello' con l’ID, per esempio 'gpt-4o', e /home/gigi con il percorso del progetto. Con più file, grep scrive il nome del file davanti a ogni riga trovata.

Due opzioni del manuale corrispondono a quelle di Select-String. --include= seguito da un modello di nome, come *.py, limita la ricerca a un tipo di file. -F tratta il testo cercato come stringa fissa e non come espressione regolare, così il punto di gpt-4.1 resta un punto. grep esce con stato 0 se trova almeno una riga, con 1 se non ne trova e con 2 in caso di errore.

Il manuale consultato è quello di GNU grep 3.12, e le opzioni lunghe come --include sono estensioni GNU. Il grep di macOS non è GNU grep, quindi alcune opzioni possono comportarsi in modo diverso: il riferimento è il manuale del grep installato sul proprio sistema.

La ricerca non si ferma al codice: gli ID possono trovarsi anche nei file di configurazione, nei file .env e nelle variabili d’ambiente del server o della pipeline di rilascio.

Sostituire l’ID con gpt-6-luna

Nel codice si sostituisce il valore del parametro model e si verificano i parametri della richiesta. Negli esempi della guida rapida compare come model="..." in Python e come model: "..." in JavaScript per Node.js. Al posto dell’ID ritirato si scrive model="gpt-6-luna" oppure model: "gpt-6-luna". Se l’ID arriva da una variabile d’ambiente o da un file di configurazione, la modifica va fatta lì.

La pagina Models descrive GPT-6 Luna come il modello OpenAI «più efficiente» per attività mirate e ad alto volume. La scheda riporta questi dati:

  • prezzo Standard, senza elaborazione regionale e per input non in cache: 0,10 dollari per milione di token in input e 0,50 in output fino a 272.000 token di input; oltre questa soglia, sull’intera richiesta si applicano 0,20 dollari per milione di token in input e 0,75 in output;
  • finestra di contesto, cioè la quantità massima di testo che il modello considera in una richiesta: 1,05 milioni di token;
  • output massimo: 128.000 token;
  • data limite delle conoscenze: 18 maggio 2026;
  • strumenti: funzioni, ricerca web, ricerca nei file, uso del computer.

La documentazione non riporta confronti di prestazioni o di comportamento con GPT-4o, e qui non ne facciamo. Il passaggio da Chat Completions a Responses API è un’altra migrazione e ha una guida ufficiale a parte.

Verificare con l’endpoint Models e il campo shutdown_date

La pagina dei ritiri suggerisce di controllare le date di spegnimento chiamando l’endpoint che elenca i modelli, GET /v1/models. Ogni modello può avere un campo opzionale shutdown_date, che contiene la data in formato YYYY-MM-DD oppure null se non è stata annunciata alcuna data. Questo è il comando della documentazione di riferimento di List models:

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

La risposta è un oggetto JSON con "object": "list" e un array data. Ogni modello dell’array ha i campi id, object, created, owned_by e, quando c’è, shutdown_date. L’endpoint elenca solo i modelli disponibili al momento della chiamata («currently available»): un ID già ritirato, o non accessibile all’account, può quindi non comparire affatto. Si controllano due cose:

  1. gpt-6-luna deve comparire nell’elenco. Se il suo shutdown_date è null, non è annunciata una data di spegnimento.
  2. Gli snapshot gpt-4o-2024-08-06, gpt-4o-2024-11-20 e gpt-4o-mini-2024-07-18, se presenti nell’elenco, devono riportare 2027-01-14; gpt-4o-2024-05-13 deve riportare 2026-10-23. Le varianti audio seguono altri calendari, indicati nella stessa pagina dei ritiri.

Il campo è opzionale: se un modello non ha shutdown_date, non è un errore. Per controllare un solo modello c’è anche l’endpoint Retrieve model, che risponde a GET /v1/models/ seguito dall’ID e restituisce lo stesso campo.

Il comando è scritto con la sintassi delle shell di macOS e Linux: la barra rovesciata per andare a capo e $OPENAI_API_KEY per leggere la variabile impostata prima. La documentazione di riferimento non ne dà una versione per PowerShell e non indica un’alternativa per Windows. Chi lavora solo su Windows può comunque confrontare gli ID trovati nel codice con la pagina dei ritiri.

Provare gpt-6-luna in un ambiente di test

Un modello diverso può rispondere in modo diverso agli stessi prompt, e la documentazione non dice quanto. Prima di rilasciare la modifica, il codice con gpt-6-luna va fatto girare in un ambiente separato dalla produzione. Lì si confrontano risposte, errori e consumo di token con quelli del modello precedente.

Schermata di un editor di workflow a nodi con agenti e condizioni per testare la pipeline.
Interfaccia di test a nodi per verificare il corretto funzionamento del modello prima del rilascio. — Immagine: OpenAI

Vanno controllati anche i parametri che il codice passa insieme al modello. Se compare prompt_cache_retention, la guida alla migrazione indica di sostituirlo con prompt_cache_options.ttl impostato a "30m". GPT-6 Luna usa medium come reasoning effort predefinito, quindi anche senza indicarlo nel vecchio codice vale un effort diverso da none: vanno rimossi temperature, top_p e top_logprobs; in Chat Completions va rimosso anche logprobs, mentre in Responses si elimina message.output_text.logprobs da include. Per mantenere le chiamate a funzione in Chat Completions bisogna impostare esplicitamente reasoning_effort="none". Secondo la pagina Models, gpt-6-luna accetta questi livelli di ragionamento (reasoning effort): none, low, medium, high, xhigh e max. Chi usa Chat Completions con le chiamate a funzione ha un vincolo in più: la guida alla migrazione verso Responses avverte che, a partire da GPT-5.4, Chat Completions non supporta le chiamate a strumenti con un valore di reasoning_effort diverso da none.

Tornare al modello precedente se qualcosa non va

Se il test dà problemi, nel codice si rimette l’ID di prima. Secondo la pagina dei ritiri, gli ID di GPT-4o, GPT-4o mini, GPT-4.1 e GPT-4.1 mini restano utilizzabili fino al 14 gennaio 2027. Per gpt-4o-2024-05-13 il limite è il 23 ottobre 2026, quattro giorni dopo la data di consultazione di questa guida. Tornare indietro fa solo guadagnare tempo: dopo lo spegnimento il modello non è più accessibile. La pagina aggiunge che in alcuni casi si può ottenere capacità dedicata oltre quella data contattando il team commerciale di OpenAI, ma non dice a quali condizioni.

Se qualcosa va storto

  • Select-String si ferma con un errore: se -Path indica solo una cartella, il comando fallisce. Bisogna indicare i file, per esempio con un carattere jolly sull’estensione.
  • Messaggi «Access denied» nella ricerca ricorsiva su Windows: secondo Microsoft possono comparire con Get-ChildItem -Recurse, a seconda dei permessi sulle cartelle.
  • grep non stampa nulla: uno stato di uscita 1 vuol dire che il testo non è stato trovato. Uno stato 2 segnala un errore, per esempio un file che non si può leggere.
  • grep segnala che un file binario corrisponde: di default GNU grep non stampa le righe dei file che considera binari e scrive solo un avviso.

Documentazione di riferimento

Pagine consultate il 19 ottobre 2026:

Leggi anche