Costruire un RAG che funziona bene in demo è facile. Costruirne uno che funziona bene in produzione, dopo 6 mesi, con documenti cambiati e traffico reale, è un'altra cosa. Ecco come lo facciamo.
Negli ultimi anni sempre più aziende ci chiedono di affiancare al proprio sito o al proprio CRM un assistente virtuale capace di rispondere ai clienti attingendo dalla documentazione aziendale: schede prodotto, manuali, cataloghi, normative di settore. La tecnologia alla base si chiama RAG, Retrieval-Augmented Generation: il modello non "inventa" la risposta, ma recupera prima i documenti pertinenti e la costruisce su quella base.
Funziona bene, ma nasconde un rischio che i clienti spesso sottovalutano: un chatbot che sembra intelligente in demo può comportarsi in modo imprevedibile in produzione, quando cambiano i documenti, aumenta il traffico o qualcuno prova a metterlo in difficoltà con una domanda fuori tema.
Per questo, in parallelo allo sviluppo degli assistenti RAG per i nostri clienti, abbiamo costruito internamente una piattaforma di collaudo dedicata che ci permette di misurare, e non solo intuire, la qualità di ogni assistente prima e dopo la messa in produzione.
Ogni risposta viene ispezionata, non solo letta
Quando testiamo una configurazione, non ci limitiamo a leggere la risposta del modello: vediamo anche quali documenti sono stati recuperati dal motore di retrieval e con quale punteggio di pertinenza, ordinati dal più rilevante al meno rilevante. Questo ci permette di capire subito se un problema dipende dal modello, che genera male, o dal retrieval, che pesca i documenti sbagliati: due cause molto diverse, che richiedono interventi diversi.
Test di regressione: verificare che nulla si rompa
Ogni volta che aggiorniamo un prompt di sistema, cambiamo modello o modifichiamo il corpus documentale di un cliente, il rischio è che una risposta che prima funzionava smetta di farlo. Per ogni progetto manteniamo quindi una suite di test di regressione: un elenco di domande reali con criteri di verifica automatici, come "la risposta deve contenere questa informazione" oppure "non deve mai menzionare quest'altra".
Vi abbiamo affiancato anche una libreria di domande "guardrail", pensate apposta per mettere alla prova i limiti dell'assistente: tentativi di prompt injection, richieste di consulenza legale o medica, cambi di lingua, domande fuori dal perimetro aziendale. Prima di ogni rilascio, l'intera suite viene rieseguita in pochi minuti, e qualunque regressione emerge subito, invece che scoprirla da un cliente insoddisfatto.
Un secondo modello fa da giudice
Alcuni criteri di qualità non si riducono a "la risposta contiene questa parola": per esempio, "l'assistente deve rifiutare gentilmente la richiesta" oppure "il tono deve restare professionale". Per questi casi usiamo un secondo modello come valutatore indipendente, una tecnica nota come LLM-as-judge: gli forniamo domanda, risposta e criterio, e restituisce un verdetto motivato in linguaggio naturale.
Lo stesso approccio alimenta anche un rilevatore automatico di allucinazioni, che confronta ogni risposta con i documenti effettivamente recuperati e segnala le affermazioni non supportate: uno dei rischi più delicati di qualsiasi sistema RAG, e uno di quelli a cui i clienti tengono di più.
LLM-as-judge
Un secondo modello AI valuta la qualità delle risposte in modo indipendente, restituendo un verdetto motivato in linguaggio naturale.
Rilevatore allucinazioni
Confronta ogni risposta con i documenti recuperati e segnala automaticamente le affermazioni non supportate dalla documentazione.
Test di regressione
Suite automatica che verifica ad ogni aggiornamento che nessuna risposta che funzionava abbia smesso di farlo.
Domande guardrail
Libreria di domande pensate per mettere alla prova i limiti dell'assistente: prompt injection, richieste fuori perimetro, cambi di lingua.
Simulare il traffico reale prima che arrivi
Un assistente che risponde bene a una domanda alla volta può comportarsi diversamente sotto carico. La piattaforma include un modulo di test di carico che lancia decine di richieste simultanee, distribuite nel tempo per simulare un traffico realistico — ad esempio "quante richieste al minuto regge il sistema" — misurando latenza media e percentili, tasso di errore ed eventuali blocchi per limite di frequenza.
È lo stesso tipo di verifica che si farebbe prima del lancio di un'applicazione critica, applicata a un chatbot che dialoga ogni giorno con i clienti finali.
L'intelligenza artificiale al servizio del collaudo
Le funzioni più recenti che abbiamo aggiunto usano l'AI stessa per aiutarci a migliorare la configurazione. Uno strumento propone automaticamente una versione più efficace del prompt di sistema, a partire dai casi di test falliti. Un altro analizza i risultati di un'esplorazione sistematica dei parametri di retrieval — cioè quanti documenti recuperare e con quale soglia di somiglianza — e consiglia la combinazione migliore. Un terzo, dopo un test di carico, suggerisce un livello di concorrenza sicuro da usare in produzione.
In pratica il collaudo non si limita più a segnalare i problemi: aiuta anche a individuare la soluzione più probabile.
Confrontare due configurazioni sugli stessi dati
Quando dobbiamo decidere se cambiare modello, aumentare il numero di documenti recuperati o riscrivere il prompt, non ci affidiamo all'impressione soggettiva: mettiamo a confronto due configurazioni sulla stessa domanda, oppure, quando la decisione è più delicata, facciamo eseguire l'intera suite di regressione a entrambe le configurazioni e confrontiamo i tassi di successo. È lo stesso principio dell'A/B testing usato da anni per i siti web, applicato al comportamento di un assistente conversazionale.
Tracciabilità completa
Ogni test eseguito resta in un log consultabile e ricercabile, con la possibilità di confrontare parola per parola due risposte ottenute in momenti diversi: utile per verificare in modo oggettivo l'effetto reale di una modifica, invece di fidarsi della sensazione. Le configurazioni di test possono essere esportate in un file e condivise tra colleghi o riportate su un altro ambiente, così un problema individuato da un membro del team può essere riprodotto esattamente da un altro, con gli stessi dati e le stesse condizioni.
Cosa significa, in concreto, per chi riceve l'assistente
Tutto questo lavoro resta dietro le quinte, ma si traduce in garanzie concrete per i nostri clienti: risposte verificate su un ampio numero di casi reali prima del rilascio, un processo ripetibile per controllare che ogni aggiornamento non introduca regressioni, una stima realistica di quanto traffico il sistema può sostenere, e strumenti per individuare rapidamente eventuali allucinazioni o comportamenti fuori controllo.
In un ambito come quello degli assistenti basati su intelligenza artificiale generativa, dove la qualità percepita può cambiare da una richiesta all'altra, per noi è la differenza tra "sembra funzionare" e "sappiamo che funziona, e possiamo dimostrarlo".