davide 444942dc8f feat: demota #→## quando il documento usa h1 per sezioni principali
Aggiunge _t_demote_h1 in _headers.py: se il documento contiene ≥5
header # con contenuto testuale (lettere iniziali), i # vengono
demotati a ## creando la gerarchia ## (parti) → ### (sezioni)
invece di # → ###.

Utile per manuali strutturati in parti principali (h1) con sezioni
(h3) senza livello intermedio h2. La soglia di 5 evita falsi positivi
su documenti con un solo titolo h1 o h1 da artefatti di encoding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 16:21:02 +02:00

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.

S
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.
Readme 789 KiB
Languages
Python 99.6%
Shell 0.4%