chore: rimuove chunker legacy, aggiunge dipendenze AST-based pipeline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-08 16:16:07 +02:00
parent b321a51c5c
commit be8ae9f6b8
6 changed files with 2 additions and 970 deletions
-64
View File
@@ -1,64 +0,0 @@
#!/usr/bin/env python3
"""
Parametri della pipeline di chunking.
Input atteso: sources/<stem>/<stem>.md — Markdown già pulito e ben strutturato.
"""
# ─── Dimensione chunk ─────────────────────────────────────────────────────────
# Caratteri massimi per chunk (prefisso di contesto incluso).
# Paragrafi più lunghi vengono spezzati a confine di frase.
# Una singola frase che supera MAX_CHARS non viene mai spezzata.
MAX_CHARS: int = 1200
# Soglia minima attesa (usata da verify_chunks come warning, non blocca).
MIN_CHARS: int = 80
# ─── Spezzatura frasi ─────────────────────────────────────────────────────────
# Regex per rilevare il confine di fine frase.
# Split solo prima di lettera maiuscola o virgolette — evita split su abbreviazioni.
SENTENCE_SPLIT_RE: str = r"(?<=[.!?»])\s+(?=[A-ZÀÈÉÌÒÙ\"])"
# ─── Blocchi atomici ──────────────────────────────────────────────────────────
# Blocchi Markdown che non vengono mai spezzati, anche se superano MAX_CHARS.
ATOMIC_TYPES: set[str] = {"table", "code", "list"}
# ─── Contesto heading ─────────────────────────────────────────────────────────
# Profondità massima del percorso heading incluso nel prefisso di ogni chunk.
# 1 = solo H1, 2 = H1 > H2, 3 = H1 > H2 > H3.
CONTEXT_DEPTH: int = 3
# ─── Sezioni da escludere ────────────────────────────────────────────────────
# Heading (case-insensitive) le cui sezioni vengono saltate completamente.
# Il match è su prefisso: "indice" salta anche "Indice delle figure".
# Lasciare vuoto per non escludere nulla.
SKIP_HEADINGS: set[str] = {
"indice",
"sommario",
"bibliografia",
"ringraziamenti",
"abbreviazioni",
}
# Se True, salta il contenuto che precede il primo heading (frontespizio, copertina).
SKIP_PRE_HEADING: bool = True
# ─── Merge paragrafi corti ────────────────────────────────────────────────────
# Paragrafi consecutivi più corti di MIN_CHARS vengono fusi fino a raggiungerlo,
# purché appartengano allo stesso contesto heading.
MERGE_SHORT_PARAGRAPHS: bool = True
# ─── verify_chunks ────────────────────────────────────────────────────────────
# Numero minimo di simboli matematici perché un chunk incompleto sia classificato
# come "matematico" (warning meno grave rispetto a frase spezzata normale).
MATH_SYMS_MIN: int = 3
PROTECT_TABLES: bool = True
PROTECT_MATH: bool = True