)
Spring AI: il modo più "Java" di fare GenAI in azienda
Spring, Java e Generative AI?
Fin dalla nascita dell’AI generativa, Python ha rappresentato il linguaggio di riferimento, grazie a strumenti e librerie specifiche.
Tuttavia, con l’arrivo di Spring AI, versione ufficiale rilasciata nel maggio 2025, è finalmente possibile sfruttare la GenAI anche in ambienti enterprise Java, rispettando i principi fondanti di Spring e beneficiando al contempo dell’affidabilità e scalabilità tipiche della piattaforma.
Perché adottare Spring AI?
Basta aggiungere lo starter, impostare la chiave API ed è subito possibile utilizzare i vari componenti come fossero elementi standard di Spring
Scrivendo il codice tramite le interfacce Spring AI, è possibile cambiare provider (OpenAI, Vertex AI o altri) senza necessità di modificare il codice
Gli output strutturati possono essere mappati direttamente su POJO Java, rendendo l’interazione tipizzata e sicura
Con MCP e @Tool si possono creare assistenti in grado di eseguire azioni reali, arricchendo l’interazione con strumenti esterni
Use case reale: Spring potenziato con OpenAI
L’idea di fondo era trasformare una classica applicazione Spring per la gestione dei trofei vinti dai player in qualcosa di più naturale: un assistente virtuale che comprenda domande in linguaggio quotidiano.
Invece di navigare tra tab e form, un operatore può semplicemente scrivere:
"Elenca le informazioni sui player con nome Daniela",
e ricevere una risposta immediata e precisa dall'AI.
Cosa accade?
Spring AI riceve la richiesta e, prima di inviarla a OpenAI, la arricchisce con un set di dati, ad esempio: un prompt preconfigurato che spiega il contesto, eventuali messaggi precedenti e l’elenco delle API disponibili.
Grazie alla struttura del prompt e alla descrizione delle API, OpenAI capisce autonomamente che deve invocare una specifica funzione, in questo caso listPlayers.
Spring AI converte la richiesta ed esegue l’interrogazione tramite Spring Data JPA.
Viene restituita a OpenAI una PlayersResponse con la lista dei player in formato JSON.
OpenAI la elabora e genera il messaggio finale in linguaggio naturale, ad esempio:
“Il player di nome Daniela nei nostri registri è: Daniela Rossi – Indirizzo: Via Roma 123 – Tel: 0612345678 – Lista dei trofei vinti: PlayerOfTheMonth, Top1%Weekly, PlayerElite.”
Tutti i passaggi vengono tracciati nei log dell’applicazione, che evidenziano come Spring AI gestisca i tool call, il contesto, gli ID di sessione e altro ancora.
Perché è un caso ideale di riferimento?
Questo esempio dimostra perfettamente la potenza di Spring AI, poiché consente un’interazione naturale e fluida con il sistema, senza la necessità di interfacce utente complesse. La logica di business Java già esistente può essere riutilizzata senza dover ricorrere a riscritture invasive, garantendo così continuità e risparmio di tempo nello sviluppo.
Inoltre, grazie all’integrazione delle funzionalità RAG basate su embeddings, è possibile eseguire query semantiche anche su dataset di dimensioni contenute, migliorando l’efficacia delle risposte AI. Il sistema si distingue anche per la sua flessibilità: è possibile passare da un provider come OpenAI ad altri, ad esempio Azure AI, senza dover modificare il codice sottostante.
Infine, grazie all’utilizzo di un vector store precaricato e a un’architettura snella, l’avvio dell’applicazione è rapido e i costi operativi risultano contenuti