From 48567fa5e7b8e6ac868f4b8361242f2576f5162b Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Tue, 12 May 2026 11:21:24 +0200 Subject: [PATCH] fix(verify): riconosce URL www. come terminatori validi + doc multi-documento MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _URL_TAIL ora matcha anche www.* (non solo https://) — evita falsi blockers su watermark tipo www.docsity.com - README: documenta --collection / --stems per ingestion, retrieve e rag Co-Authored-By: Claude Sonnet 4.6 --- README.md | 22 ++++++++++++++++++---- chunks/verify_chunks.py | 2 +- 2 files changed, 19 insertions(+), 5 deletions(-) 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})$")