Salta al contenuto principale

Domain Knowledge Base - RAG Systems

Come funziona il dominio, prima di scrivere una riga di codice? Scegli un documento dall'albero a sinistra: ogni pagina spiega una parte del modello.

Regole di Business - RAG Systems

Questo documento elenca le regole di business fondamentali del dominio RAG Systems (sistemi di Retrieval-Augmented Generation), identificate con codice univoco BR-NNN. Ogni regola è technology-independent e descrive un vincolo invariante sulla pipeline di indicizzazione e interrogazione.

---

BR-001 - Coerenza dello spazio di embedding tra indicizzazione e query

Codice: BR-001 Nome: Stesso modello di embedding per documenti e query Descrizione: Gli Embedding dei Chunk indicizzati e quelli delle Query devono essere prodotti dallo stesso modello e avere la stessa dimensione. Cambiare il modello di embedding richiede la reindicizzazione completa del VectorIndex. Motivazione: La similarità è significativa solo nello stesso spazio vettoriale; modelli diversi rendono i confronti privi di senso. Priorità: CRITICA Attori: Indexing Pipeline, Retriever Violazione: ricerca con embedding di modello diverso → reindicizzazione forzata. Tracciabilità: INV-01; indexing-pipeline.md.

---

BR-002 - Ogni Chunk conserva la provenienza

Codice: BR-002 Nome: Tracciabilità della fonte per ogni frammento Descrizione: Ogni Chunk indicizzato deve conservare il riferimento al Documento di origine, la posizione e la data di indicizzazione. Le risposte fondate citano la fonte tramite questi riferimenti. Motivazione: Permettere la citazione, la verifica e l'attribuzione delle affermazioni (grounding verificabile). Priorità: ALTA Attori: Indexing Pipeline, Generator Tracciabilità: BR-006; INV-02; query-answering.md.

---

BR-003 - La risposta è ancorata al contesto recuperato

Codice: BR-003 Nome: Grounding obbligatorio sul contesto Descrizione: Il Generator deve basare la risposta esclusivamente sui Chunk recuperati pertinenti. Quando il contesto non contiene l'informazione, la risposta deve dichiarare l'incertezza ("non disponibile nei documenti") anziché ricorrere alla conoscenza parametrica non verificata. Motivazione: Ridurre le allucinazioni e garantire la faithfulness (la promessa centrale della RAG). Priorità: CRITICA Attori: Generator Violazione: affermazioni non supportate dal contesto → la valutazione di faithfulness fallisce. Tracciabilità: INV-03; query-answering.md.

---

BR-004 - Soglia di pertinenza sui chunk recuperati

Codice: BR-004 Nome: Filtraggio dei risultati a bassa rilevanza Descrizione: Solo i Chunk con punteggio di pertinenza sopra una soglia (dopo eventuale re-ranking) vengono passati al Generator. Chunk irrilevanti vanno scartati per non inquinare il contesto e indurre allucinazioni. Motivazione: Contesto rumoroso degrada la qualità della risposta più della sua assenza. Priorità: ALTA Attori: Retriever, Reranker Tracciabilità: query-answering.md; INV-04.

---

BR-005 - Il contesto rispetta la finestra e il budget

Codice: BR-005 Nome: Gestione del top-k e del token budget Descrizione: Il numero di Chunk inviati al Generator (top-k) e la loro lunghezza complessiva devono rientrare nella finestra di contesto e nel budget di token. Oltre il limite si applica selezione/compattazione esplicita, mai troncamento silenzioso del chunk più rilevante. Motivazione: Evitare overflow e perdita del contesto critico per il "lost in the middle". Priorità: ALTA Attori: Retriever, Generator Tracciabilità: INV-05; query-answering.md.

---

BR-006 - Reindicizzazione alla variazione delle fonti

Codice: BR-006 Nome: Freschezza dell'indice Descrizione: Quando un Documento viene aggiunto, modificato o rimosso, la Indexing Pipeline deve aggiornare il VectorIndex in modo che le risposte riflettano lo stato corrente delle fonti. I chunk di documenti rimossi non devono più essere recuperabili. Motivazione: Evitare risposte basate su informazioni obsolete o su documenti non più validi. Priorità: ALTA Attori: Indexing Pipeline Tracciabilità: indexing-pipeline.md; INV-06.

---

BR-007 - Isolamento dei dati in multi-tenancy

Codice: BR-007 Nome: Filtraggio per metadati e confini di accesso Descrizione: Quando l'indice serve più tenant o livelli di autorizzazione, ogni Query deve recuperare solo i Chunk per cui il richiedente ha diritto di accesso, tramite filtraggio per metadati applicato prima o durante la ricerca. Motivazione: Prevenire la fuga di dati tra tenant o oltre i permessi dell'utente. Priorità: CRITICA Attori: Retriever, Guardrail Tracciabilità: INV-07; query-answering.md.

---

BR-008 - Difesa dalla prompt injection nei documenti

Codice: BR-008 Nome: I contenuti recuperati sono dati non fidati Descrizione: I Chunk recuperati (provenienti da documenti esterni) sono contenuto non fidato: vanno delimitati nel prompt e ispezionati dai Guardrail, perché possono contenere istruzioni di injection indirizzata al modello. Motivazione: Difendersi dalla prompt injection veicolata dai documenti indicizzati. Priorità: CRITICA Attori: Generator, Guardrail Tracciabilità: OWASP LLM Top 10 (LLM01); INV-08.