2.9 KiB
CLAUDE.md — RAG from Scratch
Regole invarianti
- Lingua: Rispondi sempre in italiano.
- Venv obbligatorio: Usa
.venv/bin/pythono attiva consource .venv/bin/activate. Maipip/pythondi sistema. - Non modificare
raw.md: Il fileraw.mddi ogni stem è immutabile. La copia di lavoro è sempreclean.md.
Pipeline (operazioni in ordine)
PDF (sources/)
→ conversione (PDF → clean.md + structure_profile.json)
→ chunking (clean.md → chunks.json)
→ verifica (chunks.json → report + fix automatici)
→ vettorizzazione (chunks.json → ChromaDB)
→ retrieval (query → risposta via Ollama)
Il parametro --stem identifica il documento (nome PDF senza .pdf). Lo stem è anche il nome della collection ChromaDB.
File critici
| File | Ruolo |
|---|---|
config.py |
Fonte di verità: EMBED_MODEL, OLLAMA_MODEL, TOP_K, TEMPERATURE, SYSTEM_PROMPT |
chunker.py |
Chunking adattivo — MIN_CHARS=200, MAX_CHARS=800, OVERLAP_S=2 |
verify_chunks.py |
Verifica chunk — stesse soglie di chunker.py |
fix_chunks.py |
Fix automatici su chunk anomali |
ingest.py |
Vettorizzazione ChromaDB — legge EMBED_MODEL da config.py |
rag.py |
Pipeline RAG interattiva |
conversione/pipeline.py |
Conversione PDF → clean Markdown strutturato |
Regole di assistenza
Modifica EMBED_MODEL in config.py:
Avvisa sempre che serve rieseguire la vettorizzazione:
python ingest.py --stem <stem> --force
ingest.py importa EMBED_MODEL direttamente da config.py — la coerenza è critica: se violata non produce errori ma restituisce risultati insensati.
Modifica soglie chunking (MIN_CHARS, MAX_CHARS, OVERLAP_S):
I valori compaiono in più file che vanno sincronizzati manualmente:
chunker.pyverify_chunks.pyfix_chunks.py
Conversione PDF → Markdown:
conversione/pipeline.py produce raw.md e clean.md. Il clean.md va sempre revisionato dopo la conversione automatica — la qualità del RAG dipende da esso più di qualsiasi parametro tecnico. Suggerisci sempre /prepare-md conversione/<stem>/clean.md dopo la conversione.
Verifica chunk:
Dopo verify_chunks.py, usa /step6-fix <stem> prima di procedere con la vettorizzazione.
Skills custom
/prepare-md <path>— Revisione e correzione automatica di qualsiasiclean.md: sillabazione, artefatti, header malformati, paragrafi spezzati, gerarchia, sezioni vuote. Accetta path completo (conversione/bitcoin/clean.md) o stem (bitcoin)./step6-fix <stem>— Dry-run e applicazione fix chunk tramitefix_chunks.py.
Output per stem
conversione/<stem>/raw.md ← immutabile
conversione/<stem>/clean.md ← copia di lavoro
conversione/<stem>/structure_profile.json
<stem>/chunks.json
<stem>/report.json
chroma_db/<stem>/ ← collection ChromaDB