Vai al contenuto principale
Categorie articolo: Learn

Dalla tesi al prodotto: cosa ho imparato sviluppando un chatbot RAG in Intré

3 Agosto 2026 - 4 minuti di lettura

Come rendere facilmente accessibile la conoscenza prodotta nel tempo dalle Gilde Intré?

È la domanda da cui è nato il progetto di tesi magistrale in Informatica di Francesco Romeo, sviluppato durante il suo stage in azienda.

La risposta ha preso la forma di un chatbot RAG integrato in i3Guild, l’applicazione utilizzata da Intré per proporre, organizzare e documentare le Gilde. Per chi non lo sapesse, una Gilda è un gruppo di lavoro formato da persona che condividono un interesse da approfondire: studio di un nuovo framework, realizzazione di un progetto, acquisizione di una certificazione ecc.

Il lavoro non ha riguardato soltanto l’integrazione di un Large Language Model, ma la progettazione di un sistema completo, capace di recuperare informazioni affidabili dal patrimonio informativo aziendale e di funzionare nel rispetto di precisi requisiti di sicurezza, prestazioni e manutenibilità.

In questo articolo Francesco Romeo racconta il percorso seguito, le scelte tecnologiche affrontate e ciò che ha imparato trasformando una tesi sperimentale, svolta grazie al supporto di Marco Loregian, Yordan Asenov, Andrea Caglio e Luca Giudici, in un progetto destinato a un contesto reale.

Rendere interrogabile la conoscenza delle Gilde: la genesi del chatbot RAG

All’inizio del suo stage Francesco aveva un obiettivo piuttosto chiaro: realizzare una tesi sperimentale che gli permettesse di confrontarsi con un progetto reale, non con un semplice esercizio accademico.

La domanda da cui è partito tutto era semplice: “come possiamo rendere facilmente interrogabile la conoscenza prodotta dalle Gilde Intré?”.

Nel corso degli anni, i3Guild ha raccolto una grande quantità di informazioni: descrizioni dei progetti, obiettivi, risultati, partecipanti, articoli e documentazione tecnica. Un patrimonio prezioso, ma distribuito tra database, contenuti testuali e materiali differenti e, di conseguenza, non sempre semplice da consultare.

L’obiettivo era quindi costruire un assistente capace di rispondere in linguaggio naturale alle domande degli utenti. Uno strumento che permettesse di recuperare velocemente le esperienze maturate, trovare progetti già realizzati e facilitare la proposta di nuove Gilde.

Quello che inizialmente sembrava un classico chatbot basato sull’Intelligenza Artificiale si è però rivelato un problema progettuale molto più articolato.

Perché un LLM da solo non era sufficiente

I Large Language Model sono molto efficaci nel produrre risposte fluenti e coerenti, ma presentano un limite evidente quando vengono utilizzati in un contesto aziendale: non conoscono le informazioni interne dell’organizzazione.

Affidarsi esclusivamente a un modello generativo avrebbe potuto produrre risposte plausibili, ma non necessariamente corrette, aggiornate o verificabili.

Per questa ragione il progetto è stato sviluppato seguendo il paradigma della Retrieval-Augmented Generation, o RAG. Questo approccio permette di mantenere la conoscenza separata dal modello linguistico: prima di elaborare una risposta, il sistema ricerca le informazioni più pertinenti all’interno del patrimonio documentale aziendale e le utilizza come contesto per la generazione.
In questo modo è possibile:

  • utilizzare informazioni aggiornate;
  • ridurre il rischio di allucinazioni;
  • ricondurre le risposte alle relative fonti;
  • aggiornare la conoscenza disponibile senza dover addestrare nuovamente il modello.

La sfida, quindi, non consisteva semplicemente nel generare testo, ma nel recuperare le informazioni corrette e fornirle al modello nel modo più efficace possibile.

Progettare un’architettura integrata con i3Guild, non soltanto un chatbot RAG

Durante lo stage il lavoro non si è limitato alla selezione di un modello linguistico. La parte più interessante è stata progettare un’architettura completa, capace di integrarsi con un’applicazione già esistente e di rispettare i vincoli tecnologici dell’azienda.

L’architettura sviluppata separa chiaramente le diverse responsabilità del sistema:

  • PostgreSQL continua a rappresentare la sorgente ufficiale dei dati;
  • una pipeline di ingestione prepara e indicizza le informazioni;
  • Qdrant gestisce la ricerca vettoriale;
  • Haystack orchestra la pipeline RAG;
  • FastAPI espone le funzionalità attraverso un microservizio;
  • Ollama permette di eseguire localmente il modello linguistico;
  • JavaScript integra il chatbot direttamente nell’interfaccia di i3Guild.

La separazione dei diversi componenti rende il sistema più semplice da mantenere, aggiornare ed evolvere. Consente inoltre di intervenire sulle singole parti dell’architettura senza dover riprogettare l’intera soluzione.

Progettare partendo dai vincoli reali

Lavorare con vincoli concreti è uno degli aspetti che ha colpito maggiormente Francesco, nel suo percorso di stage in Intré.

Nel mondo accademico è facile immaginare infrastrutture ideali. In azienda, invece, ogni decisione deve tenere conto dei sistemi esistenti, delle risorse disponibili e dei requisiti che la soluzione dovrà rispettare nel suo utilizzo quotidiano.

Nel caso specifico del chatbot RAG per i3Guild, il sistema doveva:

  • mantenere i dati all’interno dell’infrastruttura aziendale;
  • funzionare senza dipendere da servizi cloud esterni;
  • poter essere eseguito su hardware con risorse limitate;
  • integrarsi con l’ecosistema tecnologico già presente.

Questi requisiti hanno influenzato ogni scelta progettuale: dalla selezione di modelli open-weight allo studio dell’inferenza locale, fino alla quantizzazione, diventata una parte rilevante del lavoro di tesi.

Francesco ha potuto così sperimentare direttamente come, nello sviluppo software, la soluzione migliore non sia quasi mai quella che utilizza la tecnologia più avanzata in assoluto. È piuttosto quella che riesce a trovare l’equilibrio più adatto tra qualità delle risposte, prestazioni, costi, affidabilità e semplicità di gestione.

Quando la tesi diventa un progetto concreto

Guardando a questa esperienza, il risultato più importante dello stage non è stato soltanto completare una tesi, ma contribuire allo sviluppo di un progetto pensato per essere utilizzato in un contesto reale.

Per Francesco, lavorare in Intré ha significato confrontarsi ogni giorno con sviluppatori software, software architect e altri professionisti. Il dialogo continuo ha trasformato il progetto in un’occasione di approfondimento tecnico e di crescita personale.

Sviluppare una tesi sperimentale in azienda significa uscire dalla dimensione esclusivamente accademica e misurarsi con problemi concreti, nei quali ogni decisione progettuale può avere conseguenze sulle persone che utilizzeranno il software.

È probabilmente questa la lezione più importante che Francesco porto con sé: la tecnologia è fondamentale, ma diventa davvero utile quando riesce a risolvere un problema concreto e a inserirsi in modo naturale nel lavoro quotidiano delle persone.

Articolo scritto da