Vai al contenuto
Lilium AI
Menu

Migrare dalle API OpenAI a un LLM locale: guida tecnica, costi e rischi

OpenAI spegne gpt-4o e gpt-4.1 il 14 gennaio 2027. Ecco cosa cambia nel codice quando si passa a Ollama o vLLM, quali parametri si perdono, quanto costano i listini attuali, quali dati restano da OpenAI e in quali casi conviene restare in cloud.

Lilium AIIntegrazione con ERP, CRM e migrazione API10 min

Pubblicato il

Per migrare da API OpenAI a un LLM locale spesso basta cambiare poco codice. Ollama e vLLM espongono endpoint compatibili con quelli di OpenAI, quindi in molti casi si cambiano solo l'indirizzo e il nome del modello. Il lavoro vero è altrove: alcuni parametri mancano, la qualità va misurata sui propri casi d'uso e il server va gestito e protetto. Chi usa gpt-4o o gpt-4.1 deve comunque cambiare modello entro il 14 gennaio 2027, quindi conviene valutare anche l'opzione locale.

Cosa significa migrare da API OpenAI a un LLM locale, e quanto codice va riscritto?

Significa far rispondere un modello open-weight, installato su un server dell'azienda, alle stesse chiamate che oggi l'applicazione invia a OpenAI. Se il codice usa chat/completions o embeddings, le modifiche sono spesso minime. Con Ollama l'indirizzo locale è http://localhost:11434/v1/. Il client chiede comunque una chiave API, che Ollama ignora (documentazione Ollama):

from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1/", api_key="ollama")
risposta = client.chat.completions.create(
    model="nome-modello-locale",
    messages=[{"role": "user", "content": "Riassumi questa procedura"}],
)

Ollama supporta /v1/chat/completions, /v1/completions, /v1/embeddings, /v1/models e gli endpoint audio. Dalla versione 0.13.3 supporta anche /v1/responses, ma senza stato lato server (Ollama). Il comando ollama cp crea un alias con il nome di un modello OpenAI: durante i test l'applicazione può continuare a chiedere "gpt-4o" e ricevere la risposta dal modello locale. vLLM copre completions, chat/completions (con chat template), Responses, embeddings e audio. La sua documentazione è segnata come "developer preview".

La compatibilità riguarda il formato delle chiamate, non la qualità delle risposte. Cambiare l'indirizzo richiede poco tempo. Per capire se il nuovo modello risponde bene servono invece prove strutturate. Nella pagina sulla migrazione dalle API spiego come imposto questa valutazione.

Quali funzioni delle API OpenAI non si ritrovano in Ollama e vLLM?

Mancano alcuni parametri e lo stato lato server. Alcune impostazioni vanno inoltre spostate nella configurazione del server. La tabella riassume le differenze indicate nelle documentazioni di Ollama e vLLM:

Funzione usata oggiOllamavLLMCosa fare
Chat completionsSupportataSupportata, con chat templateVerificare il template del modello
EmbeddingsSupportatiSupportatiVerificare la compatibilità degli indici già creati
Responses con statoNon supportatoEndpoint presente, stato da verificareSalvare la cronologia nell'applicazione
tool_choice, n, logprobs, logit_biasNon supportatiDa verificare sulla versione in usoRivedere la logica che li usa
userNon supportatoIgnoratoTracciare l'utente nei log applicativi
suffixNon indicatoNon supportatoRiformulare il prompt
Output strutturati, top_kDa verificareTramite extra_bodyAdattare la chiamata
Immagini via URLSolo base64Da verificareConvertire le immagini prima dell'invio
Lunghezza del contestoModelfile, num_ctxDa verificareSpostare l'impostazione lato server

Due dettagli pesano più di quanto sembri. Con Ollama la cronologia della conversazione deve gestirla l'applicazione, perché su Responses mancano previous_response_id e conversation. vLLM applica di default il file generation_config.json del modello: anche a parità di prompt, le risposte possono differire da quelle di OpenAI.

Anche chi resta in cloud deve aspettarsi modifiche. Con la versione API 2026-10-21, Anthropic ha rimosso temperature, top_p e top_k, che ora restituiscono un errore 400 (Anthropic, deprecazioni).

Confronto in tre colonne. Con le API OpenAI i log antiabuso restano fino a 30 giorni, file e vector store fino alla cancellazione, la cache fino a 24 ore, e gpt-4o si spegne il 14/1/2027. Ollama è compatibile per chat, embeddings e audio, ma non ha tool_choice, logprobs e n, e il contesto si imposta nel Modelfile. vLLM non supporta suffix, richiede extra_body per gli output strutturati e la sua chiave API non protegge tutti gli endpoint.
La compatibilità con le API OpenAI riduce le modifiche al codice ma non le azzera: ogni server ha parametri mancanti e impostazioni proprie da verificare prima della migrazione.

Perché i ritiri dei modelli OpenAI rendono la decisione urgente?

Perché chi usa gpt-4o o gpt-4.1 deve migrare comunque entro il 14 gennaio 2027. Il calendario è nella pagina delle deprecazioni di OpenAI:

Data di spegnimentoModelliSostituto indicato
23/10/2026 (già avvenuto)GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4.1 nano, GPT-4o 2024-05-13, o1, o3-mini, o4-mini e relativi fine-tuned—
11/12/2026GPT-5 (con mini, nano e pro), o3, o3-proModelli gpt-5.6
14/1/2027gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-minigpt-6-luna
1/4/2027gpt-5.1, gpt-5.3-codex, gpt-5.4-nano—

Il 30 novembre 2026 spariscono anche i prompt riutilizzabili (v1/prompts), Evals e Agent Builder. Dal 6 gennaio 2027 i clienti esistenti non potranno più avviare nuovi job di fine-tuning (OpenAI). Altri fornitori si comportano allo stesso modo: Anthropic promette "at least 60 days' notice" e ritira claude-sonnet-4-5 il 30 novembre 2026 (Anthropic). Con un modello open-weight in azienda, invece, è l'azienda a decidere quando cambiarlo. Ho analizzato i costi dei cambi forzati nell'articolo sul vendor lock-in nell'AI.

Quanto costano oggi le API OpenAI rispetto a un LLM locale?

I modelli piccoli di OpenAI costano poco, e con volumi bassi il locale raramente conviene. Il conto cambia con i contesti lunghi, con i livelli prioritari e con volumi alti e costanti. La tabella riporta i prezzi Standard per contesti fino a 272K token, consultati il 28/10/2026 sulla pagina prezzi di OpenAI:

ModelloInput ($/M token)Input in cacheOutput
gpt-6-luna0,100,010,50
gpt-6.1-terra1,000,055,00
gpt-6-sol2,000,2010,00
gpt-5.6-sol4,000,4020,00
gpt-6-astra10,001,0050,00

Sulla stessa pagina si trovano altre condizioni:

  • oltre 272K token di contesto i prezzi circa raddoppiano: gpt-6-sol passa a 4 $ in input e 15 $ in output;
  • Fast, il nuovo nome di Priority, costa il doppio dello Standard;
  • gli endpoint regionali aggiungono il 10% per i modelli idonei usciti dal 5 marzo 2026;
  • Batch e Flex costano la metà dello Standard.

OpenAI indica il prezzo promozionale di gpt-5.6-sol come valido almeno fino al 21 novembre 2026: dopo quella data va ricontrollato. Anche Google raddoppia i prezzi: Gemini 4 Argon dal 1° dicembre 2026, i modelli Flash dal 1° gennaio 2027 (Google). Ne parlo nell'articolo sui prezzi delle API di Gemini.

I listini cambiano, quindi ogni confronto va rifatto con i prezzi del giorno e i propri volumi reali. Il metodo completo è nella pagina sui costi dell'AI in locale.

Quali dati restano da OpenAI, per quanto tempo, e cosa cambia con un LLM locale?

Per impostazione predefinita le API non usano i dati per l'addestramento: "data sent to the OpenAI API is not used to train or improve OpenAI models", salvo adesione esplicita. Alcuni dati però vengono conservati (OpenAI):

DatoConservazioneZero Data Retention
Log antiabuso"for up to 30 days, unless longer retention is required by law"—
/v1/responses30 giorni di default—
Prompt cachingFino a 24 ore—
/v1/files, /v1/vector_stores, /v1/conversations, /v1/batches, fine-tuningFino alla cancellazioneNon idonei

Anche con la Zero Data Retention, il materiale sospetto di abuso su minori viene conservato per una revisione umana. Con la Safety Retention, i contenuti segnalati possono essere conservati e rivisti. L'endpoint UE eu.api.openai.com richiede l'approvazione MAM o ZDR e l'emendamento Modified Retention. Restano comunque esclusi i dati di sistema, come account, metadati e fatturazione (OpenAI).

Due episodi recenti, riportati da fonti secondarie, mostrano dove nasce il problema. Secondo WMAR-2 News, al Johns Hopkins Bayview sono stati coinvolti circa 3.182 pazienti. Un dipendente aveva caricato un foglio di calcolo su uno strumento AI pubblico non approvato. Secondo Tech Times UK, il servizio 302.ai, gestito da una società di Hong Kong, ha lasciato oltre 144.000 log di chat su uno storage Azure pubblico, chiuso l'8 settembre 2026. In nessuno dei due casi la causa indicata è il modello in sé.

Un LLM locale elimina il passaggio dei dati verso un fornitore esterno, ma non è sicuro in automatico. Secondo la documentazione di vLLM, --api-key protegge solo /v1, /v2 e /inference, mentre endpoint come /invocations restano senza autenticazione. Servono una rete isolata, un'autenticazione davanti al server e i log degli accessi. Per l'analisi dei rischi è utile il documento sugli LLM pubblicato nel programma di esperti dell'EDPB (aprile 2025). Non è una posizione ufficiale del comitato. Gli obblighi che restano in ogni caso sono nella pagina su AI e GDPR.

Quali modelli open-weight possono sostituire GPT, e come si verifica la qualità?

Esistono candidati per diverse taglie di hardware, ma la qualità va misurata sui propri casi d'uso. Ecco alcuni modelli arrivati di recente su Ollama, secondo le note di rilascio:

ModelloParametriContestoNote
Recursive Flint40B MoE, circa 2,5B attivi262KApache 2.0; v0.40.8, su Linux e Windows dalla v0.40.9
Nemotron 3.5 Bolt74B, 9B attivi—Pensato per una GPU NVIDIA da 24 GB
Nemotron 3.5 Super120B, 12B attivi1Mv0.40.5

Per Flint, Recursive dichiara il 54,9% su Terminal-Bench 2.1 e il 74,2% su SWE-bench Verified (Ollama). Sono numeri del produttore: aiutano a scegliere cosa provare, ma non bastano per decidere. Mistral Large 4 è in anteprima, con la dicitura "Open weights are coming soon" e senza licenza indicata (Mistral). Meglio non pianificare una migrazione su pesi che non si possono ancora scaricare, e verificare la licenza di ogni modello.

Per la verifica servono quattro elementi:

  • un set di prova ricavato dai casi reali, con i dati anonimizzati;
  • gli stessi prompt inviati al modello attuale e ai candidati locali;
  • criteri scritti prima del test: correttezza, formato, tempi di risposta;
  • una revisione umana sui casi in cui un errore costa davvero.

Quando conviene restare sulle API OpenAI invece di migrare?

Il cloud resta spesso la scelta più sensata in tre casi: volumi bassi o irregolari, bisogno di capacità di frontiera, mancanza delle competenze per gestire un server. gpt-6-luna costa 0,10 $ in input e 0,50 $ in output per milione di token, e il Batch costa la metà (OpenAI, consultata il 28/10/2026). Con questi prezzi, sui piccoli volumi un server proprio difficilmente conviene. Le competenze sono un limite reale. Secondo l'ISTAT, consideriamo le imprese con almeno 10 addetti che hanno valutato l'AI senza adottarla: il 58,6% indica competenze insufficienti, il 43,2% privacy e protezione dei dati, il 43,0% costi elevati.

Spesso la strada più ragionevole è intermedia: i flussi sensibili restano sul server interno, quelli generici vanno in cloud, con la stessa interfaccia compatibile. Ne parlo nell'articolo su come integrare un'AI privata con ERP e CRM. In entrambi i casi serve una governance. Il D.Lgs. 179/2026, in vigore dal 23 ottobre 2026, designa AgID e ACN come autorità nazionali per l'AI.

Da dove partire con la migrazione dalle API OpenAI?

Quando affianco un'azienda in questa valutazione parto dall'inventario:

  1. Inventario. Per ogni applicazione si elencano modelli, endpoint e parametri usati, con le date della pagina delle deprecazioni.
  2. Classificazione. I flussi si ordinano per sensibilità dei dati e volume di token. Quelli sensibili e voluminosi sono i primi candidati al locale.
  3. Pilota su un solo flusso. Si usa Ollama o vLLM, con un alias per non toccare il nome del modello nel codice (Ollama). Davanti al server serve un'autenticazione propria, perché --api-key non basta (vLLM).
  4. Confronto. Qualità e costo si misurano sul set di prova. Se i risultati non reggono, serve un piano pronto per tornare in cloud.
  5. Regole d'uso. Accessi, registri, policy e formazione riducono il rischio di casi come il foglio caricato su uno strumento non approvato.

Vuoi capire quali flussi conviene spostare e quali lasciare in cloud? Puoi partire dalla valutazione: guardiamo insieme volumi, dati e scadenze, senza vendere hardware né licenze.

Domande frequenti

Posso usare OpenAI e un modello locale nella stessa applicazione?

Sì. Ollama e vLLM espongono endpoint compatibili con quelli di OpenAI. La stessa applicazione può quindi mandare i flussi con dati sensibili al server interno e gli altri alle API cloud, cambiando solo indirizzo e modello. Servono però regole chiare su quale dato va dove e un controllo dei parametri che il server locale non supporta.

Cosa succede ai miei modelli fine-tuned su OpenAI?

Secondo la pagina delle deprecazioni di OpenAI, dal 6 gennaio 2027 i clienti esistenti non potranno avviare nuovi job di fine-tuning. Alcuni modelli fine-tuned vengono inoltre spenti insieme ai modelli di base. Conviene conservare i dataset di addestramento e di valutazione, che si possono riutilizzare anche con un modello open-weight.

Serve un server con molte GPU per fare una prima prova?

Non sempre. Alcuni modelli recenti sono pensati per hardware contenuto: secondo le note di rilascio di Ollama, Nemotron 3.5 Bolt è pensato per una GPU NVIDIA da 24 GB. Per un pilota su un solo flusso spesso basta una macchina dedicata. Il dimensionamento per la produzione dipende da utenti contemporanei, lunghezza del contesto e tempi di risposta richiesti.

Gli embedding e la knowledge base vanno rifatti se cambio modello?

In genere sì. I vettori generati da modelli di embedding diversi non sono confrontabili, quindi cambiando modello i documenti vanno indicizzati di nuovo. Conviene tenere a portata di mano i documenti originali e una procedura di indicizzazione ripetibile. I dati caricati su /v1/files e /v1/vector_stores di OpenAI restano lì finché non vengono cancellati esplicitamente.

Chi scrive

Lilium AI

AI privata e on-premise per aziende di ogni dimensione, con i dati sotto controllo