Docling: convertire PDF per un'IA locale
Docling è una libreria open source (licenza MIT, progetto IBM Research ospitato dalla LF AI & Data Foundation) che converte PDF, DOCX, PPTX, XLSX, HTML, EPUB, immagini e audio in markdown o JSON strutturato, ricostruendo layout, ordine di lettura e tabelle. Funziona completamente in locale, con o senza GPU, e si collega direttamente a LangChain, LlamaIndex, Crew AI o Haystack per alimentare una pipeline di RAG documentale.
Il PDF è il formato di input più difficile da gestire in qualsiasi pipeline documentale locale: due colonne lette trasversalmente, un'intestazione che spezza una frase in due, una tabella di cifre ridotta a una colonna di numeri senza le rispettive etichette. Docling è una libreria open source pubblicata da IBM Research, oggi ospitata dalla LF AI & Data Foundation, che analizza l'impaginazione, ricostruisce l'ordine di lettura e recupera la struttura delle tabelle, poi esporta tutto in markdown, HTML o JSON. Il tutto sul tuo computer, senza API: proprio il vincolo da rispettare quando i documenti sono contratti o cartelle cliniche.
#Il passaggio che determina tutto il resto
Quando un assistente documentale risponde male, si accusa il modello. La causa è quasi sempre a monte. Un rapporto esportato da un modello di documento aziendale e passato attraverso un estrattore di testo ingenuo diventa un flusso in cui l'intestazione della pagina interrompe un paragrafo, l'impaginazione a due colonne viene letta orizzontalmente e una tabella di risultati si trasforma in una sequenza di numeri privi di contesto. Questi frammenti vengono poi codificati, recuperati e presentati al modello come fatti: il modello legge un'assurdità e la restituisce con sicurezza. Nessun modello di embedding, nessun reranker e nessun prompt può compensare una conversione fallita a monte della catena — è questo il punto che la maggior parte dei tutorial sul RAG locale passa sotto silenzio, concentrandosi sulla scelta del modello linguistico.
Docling si occupa direttamente di questo passaggio trascurato. Il progetto è stato pubblicato in open source da IBM Research nel luglio 2024 sotto licenza MIT, il che consente l'uso commerciale senza royalty né copyleft. Ha rapidamente superato le 10.000 stelle su GitHub e, all'inizio del 2025, figurava tra i repository più seguiti al mondo; a fine settembre 2026, il repository ufficiale contava più di 68.000 stelle e la sua ultima versione stabile, la v2.130.0, era stata pubblicata il 22 settembre 2026.
#Cosa fa Docling
I tuoi documenti, la tua IA: un RAG locale affidabile sui tuoi PDF, sulle tue note e sulle tue email — senza inviare nulla nel cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
- Analisi di layout
- Identifica le aree di una pagina e la loro natura, in modo che una didascalia non venga unita a un paragrafo e un piè di pagina non compaia nel mezzo di una frase.
- Ordine di lettura
- Ricostruisce la sequenza che una persona seguirebbe, rendendo finalmente utilizzabili i documenti impaginati su più colonne.
- Struttura delle tabelle
- Riconosce righe, colonne e celle unite e le esporta come vere tabelle anziché come righe di testo.
- Riconoscimento ottico quando necessario
- Le pagine scansionate prive di un livello di testo passano attraverso l'OCR invece di essere acquisite senza contenuto testuale.
- Comprensione dei grafici
- Grafici a torta, istogrammi e curve possono essere convertiti in tabelle di dati o in una descrizione testuale, anziché essere semplicemente ignorati.
- Un unico modello di documento
- Una rappresentazione interna comune, diversi formati di esportazione (markdown, HTML, DocTags, JSON senza perdita di informazioni): il resto della catena non deve sapere se l'input era un PDF o un documento da ufficio.
Oltre ai PDF, Docling supporta DOCX, PPTX, XLSX, HTML, EPUB, le immagini (PNG, TIFF, JPEG…), le email (EML, MSG) e persino l'audio (WAV, MP3) tramite una pipeline di trascrizione — un aspetto importante, perché un corpus reale non è mai omogeneo. Quanto alle integrazioni, la libreria si collega con poche righe di codice a LangChain, LlamaIndex, Crew AI e Haystack, evitando così di dover scrivere personalmente il codice di conversione in una pipeline agentica.
#Le tabelle, il vero motivo per cui vale la pena prendersi il disturbo
In un documento professionale, i numeri si trovano quasi sempre nelle tabelle, ed è lì che l'estrazione ingenua fallisce più gravemente. Una riga che diventa «Parigi 12 480 3,2» ha perso le intestazioni delle colonne che le davano un senso. La ricerca restituisce poi un estratto apparentemente corretto, il modello inventa la relazione tra i valori e la risposta è sbagliata in un modo difficile da individuare.
Docling affida questo compito a un modello dedicato, TableFormer, che codifica la struttura della tabella con un vocabolario specializzato chiamato OTSL (Optimized Table Structure Language) e gestisce correttamente le celle unite e le intestazioni su più livelli. Secondo l'articolo di ricerca da cui nasce questo formato, OTSL riduce a una manciata di token ciò che una rappresentazione HTML equivalente esprime con più di 28 token, riducendo di circa la metà la lunghezza media della sequenza da predire e dimezzando il tempo di inferenza rispetto a un modello che produrrebbe HTML — un dettaglio architetturale invisibile all'utente finale, ma che spiega perché il riconoscimento delle tabelle di Docling resta utilizzabile su grandi volumi senza una GPU dedicata esclusivamente a questo uso. Nelle opzioni della pipeline sono disponibili due modalità: FAST, più rapida ma meno precisa sulle tabelle complesse, e ACCURATE, consigliata quando le tabelle contengono celle unite o più livelli di intestazione. Conservare la struttura, anche in markdown, mantiene il legame tra ogni valore e la relativa intestazione. Su un corpus in cui le risposte attese sono numeri, questo giustifica da solo un convertitore più pesante di un semplice estrattore di testo.
#I motori OCR disponibili
Docling non include un unico motore OCR: gestisce diversi motori intercambiabili a seconda del tipo di documento. EasyOCR e Tesseract (tramite tesserocr o da riga di comando) coprono la maggior parte dei casi; RapidOCR accetta modelli personalizzati; OcrMac sfrutta il riconoscimento nativo di macOS quando disponibile. La scelta avviene nelle opzioni della pipeline, non nel codice della tua applicazione, il che permette di cambiare motore senza modificare la logica di ingestione.
In pratica, una pipeline di ingestione in produzione inizia quasi sempre testando Tesseract su un campione: se produce un testo pulito, non c’è alcun motivo di sostenere il costo di EasyOCR. Il passaggio a EasyOCR si giustifica soprattutto con scansioni deteriorate, moduli parzialmente compilati a mano o lingue in cui Tesseract non riesce più a fornire buoni risultati. RapidOCR e OcrMac restano scelte di nicchia, riservate rispettivamente a un modello OCR sviluppato internamente e già addestrato e a un computer Mac isolato senza dipendenze esterne da installare.
| Motore | Punto di forza | Caso d'uso tipico |
|---|---|---|
| Tesseract | Veloce su testi nitidi | Documenti digitali già scansionati correttamente |
| EasyOCR | Più robusto sulle scansioni deteriorate e sulla scrittura non standard, GPU opzionale tramite use_gpu | Archivi, moduli, corpus eterogenei |
| RapidOCR | Supporta modelli personalizzati | Esigenze specifiche (lingua rara, settore specializzato) |
| OcrMac | Utilizza il motore nativo di macOS, senza dipendenze aggiuntive | Postazione di lavoro Mac, piccoli volumi |
#La suddivisione che segue la struttura
Un aspetto che la maggior parte delle guide sul RAG locale non spiega: Docling non si limita a convertire, ma propone anche una suddivisione adatta a ciò che ha appena ricostruito. Il suo HybridChunker parte dalla gerarchia del documento (titoli, sezioni), poi adatta la dimensione di ogni segmento al tokenizer effettivo del modello di embedding scelto: i blocchi troppo lunghi vengono suddivisi in corrispondenza degli elementi anziché nel mezzo di una frase, mentre i blocchi troppo corti che condividono lo stesso titolo vengono uniti. Il tokenizer fornito deve essere allineato a quello del modello di embedding utilizzato a valle, altrimenti la dimensione effettiva dei segmenti (in token) non corrisponde più a ciò che l'indice vettoriale si aspetta. È una suddivisione basata sulla struttura, da confrontare con una suddivisione in blocchi di caratteri che ignora i confini delle frasi: per i compromessi tra i due approcci, consultare la nostra guida sulle strategie di chunking.
#Quanto costa in termini di calcolo
| Configurazione | Velocità di elaborazione | Quando basta |
|---|---|---|
| Solo processore, senza OCR | Il più lento: qualche secondo per pagina complessa | Piccoli corpus, conversioni occasionali |
| Solo processore, con OCR | Ancora più lento, l'OCR domina | Alcuni documenti scansionati |
| Con GPU | Molto più veloce nell'analisi delle pagine, delle tabelle e nell'OCR con EasyOCR | Migliaia di pagine, ingestione ripetuta |
La conseguenza pratica: si converte in batch, una sola volta, e si conserva il risultato. Reindicizzare ha senso solo se la fonte cambia. E su una macchina che serve anche un modello linguistico, i due si contendono la stessa GPU tramite le opzioni di accelerazione della pipeline: acquisire un corpus mentre gli utenti pongono domande rallenta entrambi.
#La sua posizione nella catena
- 01ConvertireDocling trasforma i tuoi file in markdown o JSON strutturato, con le tabelle intatte.
- 02SuddividereCon HybridChunker, seguendo la struttura individuata e il tokenizer del modello di embedding, anziché suddividere il testo ogni mille caratteri. È qui che il convertitore offre un secondo ritorno sull'investimento.
- 03Codificare e memorizzareUn modello di embedding locale trasforma i frammenti in vettori, memorizzati in un database vettoriale come Qdrant.
- 04RispondereUn modello locale scrive a partire dai passaggi trovati, tramite Ollama o un server di inferenza locale.
- Archiviare i vettori in Qdrant
- Confronta le strategie di chunking
- Un'applicazione pronta all'uso per dialogare con i propri documenti
- Caso particolare: estrarre dati da fatture
- Solo Tesseract: un OCR più semplice per testi puliti
- Il kit RAG locale QuelLLM: tutti i componenti in una pagina
- Fonte: repository ufficiale Docling su GitHub
- Fonte: opzioni della pipeline Docling (OCR, TableFormer)
- Fonte: documentazione del HybridChunker
#Dove ci sono ancora difficoltà
- Scansioni di scarsa qualità
- La precisione dell'OCR su una fotocopia storta è un limite fisico, non software.
- Le impaginazioni con molti elementi grafici
- Riviste, testo disposto attorno a una figura, moduli: difficili per tutti i convertitori.
- Scrittura a mano
- Fuori dal perimetro di questa categoria di strumenti.
- I grafici complessi
- La comprensione dei grafici copre i casi comuni (grafici a torta, a barre, a linee); un grafico molto specifico — mappa, diagramma tecnico, schema di architettura — può ancora essere restituito solo attraverso la legenda, senza i valori sottostanti.
- Costo di ingresso
- Installare i modelli per il layout, le tabelle e l'OCR comporta il download di diversi gigabyte al primo avvio; su una macchina isolata senza accesso alla rete, occorre scaricarli in anticipo.
#FAQ
Docling è gratuito?+
Serve una GPU?+
Sa leggere i PDF scansionati?+
Qual è la differenza tra le modalità FAST e ACCURATE di TableFormer?+
Docling o un semplice estrattore di testo?+
Docling si integra con LangChain o LlamaIndex?+
I dati escono dalla mia macchina?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.