Torna alla home
Progetto

Smart Portfolio, il mio progetto pilota nell'AI

Ultimo aggiornamento: 15 settembre 2026

Work in progress: il progetto e questo articolo sono in continua evoluzione.

Questo sito non è solo il mio portfolio: è il progetto pilota con cui mi sono formato nell'intelligenza artificiale. Ogni funzionalità è stata l'occasione per studiare un pezzo di questo mondo e metterlo alla prova su un prodotto vero, dal primo prototipo fino alla produzione. Con lui ho imparato moltissimo, e questa pagina racconta come.

Stack tecnologico

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Java 21
  • Spring Boot
  • Spring AI
  • PostgreSQL
  • pgvector
  • Vercel

Perché un progetto pilota

Da anni lavoro su architetture enterprise in Java e Spring Boot, ma l'AI generativa volevo capirla costruendola, non solo leggendone. Mi serviva un progetto abbastanza piccolo da seguire da solo e abbastanza reale da costringermi ad affrontare i problemi veri: qualità delle risposte, costi, sicurezza e manutenzione.

Il portfolio era il candidato perfetto. Parla di me, quindi posso capire subito se l'assistente risponde bene. Ed è pubblico, quindi ogni scelta deve reggere in produzione.

L'assistente AI e la RAG

Il cuore del progetto è la chat: un assistente che risponde a domande sulle mie esperienze e competenze usando i contenuti di questo portfolio. Per costruirlo ho studiato la Retrieval-Augmented Generation. I documenti vengono divisi in chunk, trasformati in embedding e salvati in PostgreSQL con pgvector. A ogni domanda il backend recupera i passaggi più rilevanti e li passa al modello come contesto.

È qui che ho imparato di più: quanto la strategia di chunking e i metadati incidano sulla qualità delle risposte, come scrivere prompt che tengano il modello ancorato ai fatti e come gestire la memoria della conversazione.

Più provider LLM, una sola interfaccia

Il backend, scritto in Java 21 con Spring Boot e Spring AI, non dipende da un singolo modello. Un'astrazione comune permette di passare da OpenAI ad Anthropic, Gemini o OpenRouter cambiando la configurazione, così posso confrontare i modelli su costo, latenza e qualità senza toccare il codice della chat.

Area admin, sicurezza e affidabilità

La base di conoscenza si gestisce da un'area riservata: carico documenti Markdown, li aggiorno o li elimino, e il sistema li indicizza di nuovo. L'accesso avviene con GitHub OAuth e token JWT, ed è limitato agli account autorizzati.

Esporre un LLM al pubblico significa anche proteggerlo. Le richieste alla chat passano da un rate limiting per indirizzo IP, e dall'area admin posso disattivare l'assistente in pochi secondi se il provider ha problemi.

Frontend, lingue e trasparenza

Il frontend è costruito con Next.js 16, React e Tailwind CSS ed è pubblicato su Vercel. Il sito è bilingue, in italiano e inglese: la lingua viene scelta in base alle preferenze del browser e ricordata tra una visita e l'altra.

Integrare l'AI in un prodotto pubblico vuol dire anche rispettarne le regole. La chat dichiara fin dall'inizio di essere un sistema di intelligenza artificiale, come richiesto dall'AI Act, e invita a non inserire dati personali.

Sviluppo guidato dagli agenti

Smart Portfolio è stato anche il mio banco di prova per lo sviluppo assistito dall'AI. Ho lavorato con agenti di coding in ogni fase, dal brainstorming alla pianificazione, dall'implementazione alla code review, e molte idee nate qui sono confluite in agentic-feature-factory.

Cosa sto costruendo ora

Il progetto è ancora in evoluzione. Sto lavorando per migliorare la qualità del retrieval e per raccontare in queste pagine anche gli altri miei progetti. Questo articolo crescerà insieme al sito.