3f4689e8fd407dc70bdb658f29b2ff4db40a4bda
Risolve la conversione errata di note a piè di pagina accademiche in header Markdown nei testi giuridici (es. dirittopubblico: da 424 h2 errati → 27 h2 semanticamente corretti). - _BIB_MARKERS_RE: aggiunge ibid., cfr., op. cit., cit., ivi - _FOOTNOTE_AUTHOR_RE: nuovo pattern per "A. COGNOME" (es. G. GUZZETTA) - _num_repl / _aphorism_repl / _list_section_repl: usano entrambi i guard per non convertire note bibliografiche in sezioni - _t_promote_chapter_headers: usa max-count ≥ 3 per distinguere raccolte multi-articolo (non promuovere) da libri con capitoli sequenziali (promuovere); preserva il comportamento corretto su anatomia - _t_remove_page_markers / _t_remove_page_numbers / _t_remove_separators: nuove transform per page marker PDF, numeri isolati, separatori underscore 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%