02c785678d1eb9326b26ce41be21458d5e0de5a0
Introduce chunks/config.py come unica fonte di verità per tutti i parametri della pipeline di chunking. TARGET_CHARS + CHUNK_TOLERANCE sostituiscono MIN_CHARS/MAX_CHARS: il chunker mira a una dimensione target e si avvicina il più possibile rispettando il vincolo assoluto di terminare ogni chunk su un confine di frase (punto/punteggiatura). - config.py: TARGET_CHARS, CHUNK_TOLERANCE, SPLIT_THRESHOLD_FACTOR, PROTECT_TABLES, FIX_MAX_ITERATIONS, STRATEGY_OVERRIDES per strategia - chunker.py: algoritmo target-based (emit quando frase successiva sfora upper_body = upper - prefix_len), table protection atomica, override MIN/MAX/overlap per ciascuna delle 4 strategie - verify_chunks.py: soglie derivate da target*(1±tolerance) - fix_chunks.py: _split_at_boundary sempre su punteggiatura finale, loop ricorsivo fix→verify fino a FIX_MAX_ITERATIONS, split solo per chunk > upper × SPLIT_THRESHOLD_FACTOR Risultato su bitcoin: 694 chunk, 0 incompleti, 83% in range [450,750], tutti terminanti su punteggiatura indipendentemente dalla dimensione. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PDF → Markdown
Converte PDF digitali in Markdown strutturato e pulito.
Stack: Python · opendataloader-pdf (XY-Cut++) · Java 11+
Compatibile con: Linux · macOS · Windows (WSL2)
Setup
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Java 11+ richiesto:
sudo apt install default-jdk # Ubuntu/Debian/WSL
java -version
Utilizzo
# Singolo PDF
python conversione/pipeline.py --stem <nome>
# Tutti i PDF in sources/
python conversione/pipeline.py
# Forza riesecuzione
python conversione/pipeline.py --stem <nome> --force
--stem = nome file PDF senza estensione.
Esempio: sources/analisi1.pdf → --stem analisi1
Output
Per ogni stem in conversione/<stem>/:
| File | Descrizione |
|---|---|
raw.md |
Markdown grezzo — non modificare |
clean.md |
Markdown pulito — copia di lavoro |
structure_profile.json |
Struttura rilevata e metriche |
report.json |
Statistiche complete della conversione |
Validazione batch
python conversione/validate.py
Stampa una tabella di stato su tutti gli stem convertiti.
Vedi conversione/README.md per dettagli sulla pipeline e i tipi di documento supportati.
Description
Sistema RAG costruito da zero su qualsiasi PDF digitale. Ogni fase della pipeline - estrazione, chunking adattivo, vettorizzazione, retrieval e generazione - è uno step separato e verificabile. Gira interamente in locale su CPU, senza GPU e senza cloud. Stack: Python - Ollama - ChromaDB.
Languages
Python
99.6%
Shell
0.4%