RediCode/Blog/Intelligenza artificiale

RAG in produzione: perché i prototipi non arrivano agli utenti

Il prototipo di un assistente sui documenti aziendali si costruisce in due giorni. Si prende l'archivio, si spezzano i file in pezzi, si calcolano gli embedding, si collega un modello e si fa una demo che funziona. La riunione va bene, tutti sono contenti, e poi il progetto si ferma per otto mesi.

Non si ferma per il modello. Si ferma per tre cose che nella demo non c'erano.

Primo: i permessi

Nella demo tutti i documenti sono visibili a tutti. In azienda no. Se l'assistente risponde a un impiegato citando il contratto di un dirigente, avete creato un incidente, non una funzione. I permessi vanno risolti nel recupero, non nel messaggio di sistema: il filtro deve essere applicato quando si cercano i pezzi, prima che il modello li veda.

# il filtro dei permessi entra nella query, non nel prompt
SELECT chunk_id, content, source_uri
FROM   chunks
WHERE  acl_group = ANY($current_user_groups)
  AND  tenant_id = $tenant
ORDER  BY embedding <=> $query_vector
LIMIT  12;

Secondo: i documenti veri sono brutti

L'archivio di una demo è fatto di PDF puliti. L'archivio reale contiene scansioni storte, fogli di calcolo usati come moduli, allegati dentro allegati e quattro versioni dello stesso contratto con nomi che non aiutano. Il tempo che pensavate di spendere sul modello si sposta tutto qui: estrazione, riconoscimento del testo, deduplicazione e una regola chiara su quale versione è quella buona.

Terzo: nessuno sa se le risposte sono giuste

Questa è la parte che salta sempre, ed è quella che decide se il progetto arriva agli utenti. Serve un insieme di domande con la risposta attesa, scritto insieme a chi quel lavoro lo fa davvero. Non cento domande: quaranta bastano, purché siano quelle che arrivano in un mese normale, comprese le tre che sono ambigue anche per un umano.

Su quell'insieme si misurano due cose separate: se il sistema ha trovato i documenti giusti, e se ha scritto la risposta giusta partendo da quelli. Confonderle porta a passare settimane a cambiare il modello quando il problema era nella ricerca.

Cosa misuriamoSoglia minimaPerché
Recall@12 sul recupero0,92se il documento non entra, il modello non può indovinarlo
Risposte corrette e complete0,90giudicate da chi fa il lavoro, non dal team tecnico
Risposte inventate0,00meglio "non lo so" che una citazione che non esiste
Citazione della fonte presente1,00senza fonte la risposta non è verificabile
La soglia più importante non è l'accuratezza: è zero risposte inventate. Un assistente che sbaglia il dieci per cento delle volte si può usare. Uno che inventa una fonte una volta su cento non lo userà più nessuno.

Cosa guardiamo dopo il rilascio

Le domande che il sistema non ha saputo gestire, le risposte segnalate come sbagliate dagli utenti e la deriva del recupero quando l'archivio cresce. Ogni settimana quelle domande entrano nell'insieme di valutazione. È così che un assistente migliora: non cambiando modello ogni tre mesi, ma raccogliendo i casi in cui ha fallito.

Avete un progetto in mente?

La prima chiamata è tecnica e dura mezz'ora. Capiamo se possiamo essere utili, e ve lo diciamo anche quando la risposta è no.

Scriveteci →