diff --git a/README.md b/README.md index 26ade19..2bc00e0 100644 --- a/README.md +++ b/README.md @@ -116,17 +116,23 @@ Prima verifica che Ollama e i modelli siano pronti: Poi genera gli embedding e salva in ChromaDB: ```bash -# Singolo documento +# Singolo documento → collection con lo stesso nome .venv/bin/python ingestion/ingest.py --stem -# Tutti i documenti in chunks/ +# Più documenti → un'unica collection condivisa +.venv/bin/python ingestion/ingest.py --collection --stems doc1 doc2 doc3 + +# Tutti i documenti in chunks/ → collection separate .venv/bin/python ingestion/ingest.py # Rigenera dopo aver cambiato modello o aggiornato i chunk .venv/bin/python ingestion/ingest.py --stem --force ``` -Output in `chroma_db//` (ignorata da git). +Con `--collection` i chunk di documenti diversi vengono uniti in una singola +collection. Il metadato `source` identifica il documento di provenienza di ogni chunk. + +Output in `chroma_db/` (ignorata da git). --- @@ -184,8 +190,12 @@ Utile per verificare che i chunk giusti vengano recuperati prima di diagnosticar risposte sbagliate: ```bash +# Singolo documento .venv/bin/python retrieve.py --stem +# Collection multi-documento +.venv/bin/python retrieve.py --collection + # Modifica il numero di chunk restituiti .venv/bin/python retrieve.py --stem --top-k 10 ``` @@ -205,7 +215,11 @@ Nel loop interattivo: Risponde a domande in linguaggio naturale usando i chunk indicizzati in ChromaDB: ```bash +# Singolo documento .venv/bin/python rag.py --stem + +# Collection multi-documento +.venv/bin/python rag.py --collection ``` Nel loop interattivo: @@ -213,7 +227,7 @@ Nel loop interattivo: | Comando | Effetto | |---------|---------| | `` | Risposta generata dal LLM con contesto dai chunk | -| ` -v` | Risposta + chunk recuperati con score di similarità | +| ` -v` | Risposta + chunk recuperati con score di similarità e documento sorgente | | `exit` | Termina | --- diff --git a/chunks/verify_chunks.py b/chunks/verify_chunks.py index 95e6aad..22ec8e0 100644 --- a/chunks/verify_chunks.py +++ b/chunks/verify_chunks.py @@ -38,7 +38,7 @@ PUNCT_END = re.compile( r"|:$" # introduzione a lista o formula ) _HEX_END = re.compile(r"[0-9a-fA-F]{8,}$") -_URL_TAIL = re.compile(r"https?://\S+(\s+\S+){0,3}$") # URL con fino a 3 token extra +_URL_TAIL = re.compile(r"(https?://|www\.)\S+(\s+\S+){0,3}$") # URL con fino a 3 token extra _MATH_SYMS = re.compile(r"[∈∑≤≥≠∀∃∫√∞∂±×÷→←↔⊂⊃⊆⊇∩∪·°]") _ROMAN_END = re.compile(r"\b(I{1,3}|IV|VI{0,3}|IX|XI{0,2}|XIV|XV|XVI{0,2}|XIX|XX{0,2})$")