Copertina: MarkItDown: la libreria Microsoft che converte i documenti in Markdown

MarkItDown: la libreria Microsoft che converte i documenti in Markdown

Un tool open-source che trasforma Word, Excel, PDF, audio e immagini in testo pulito pronto per gli LLM e le pipeline RAG.

24 agosto 20266 min di lettura
MarkItDownMicrosoftMarkdownRAGLLMconversione documentiPythonopen source

Cos'è MarkItDown

MarkItDown è una libreria Python open-source sviluppata e mantenuta da Microsoft, pubblicata con licenza MIT sul repository GitHub microsoft/markitdown e distribuita su PyPI. Il nome, deliberatamente simile a "Markdown", ne rivela la funzione: convertire file di ogni tipo nel formato testuale leggero che è diventato lo standard per la documentazione tecnica e, soprattutto, per alimentare i modelli linguistici di grandi dimensioni (LLM).

Il progetto è nato con un obiettivo dichiarato e insolito: non è un convertitore ad alta fedeltà grafica. Non tenta di riprodurre pixel per pixel il layout di un documento Word o di un PDF. Si occupa invece di estrarre la struttura semantica del contenuto — titoli, elenchi, tabelle, link, paragrafi — e di restituirla in Markdown pulito, compatto e leggibile da un modello linguistico. Questa scelta progettuale è ciò che lo rende così rilevante nell'era dell'AI generativa: gli LLM "digeriscono" molto meglio un testo strutturato in Markdown che un flusso di caratteri grezzo o, peggio, un file binario.

In pochi mesi dalla pubblicazione il repository ha superato le decine di migliaia di stelle su GitHub, diventando uno dei tool di document ingestion più adottati al mondo.

A cosa serve

Il caso d'uso principale è la preparazione dei dati per pipeline AI. Quando un'azienda vuole costruire un assistente che risponde a domande sui propri documenti interni — il cosiddetto pattern RAG (Retrieval-Augmented Generation) — il primo ostacolo è sempre lo stesso: i documenti esistono in formati eterogenei. Contratti in PDF, report in Excel, presentazioni in PowerPoint, procedure in Word, registrazioni audio di riunioni. Prima di poterli indicizzare, spezzettare (chunking) e vettorializzare, vanno convertiti in testo.

MarkItDown risponde esattamente a questa esigenza, e lo fa con un ventaglio di formati molto ampio:

  • Documenti Office: Word (.docx), PowerPoint (.pptx), Excel (.xlsx), inclusi file con fogli multipli
  • PDF, con estrazione del testo incorporato
  • Formati web e dati: HTML, CSV, JSON, XML, feed RSS
  • eBook in formato EPUB
  • Immagini, con estrazione dei metadati EXIF e, opzionalmente, descrizione dei contenuti tramite LLM
  • Audio (.mp3, .wav), con trascrizione vocale
  • Archivi ZIP, esplorati ricorsivamente
  • URL YouTube, da cui recupera la trascrizione del video

Per un founder o una PMI italiana questo si traduce in scenari molto concreti: indicizzare l'archivio di preventivi e commesse per interrogarlo in linguaggio naturale; alimentare una knowledge base di customer care a partire da manuali e FAQ in Word; convertire fogli Excel di contabilità o magazzino in tabelle Markdown analizzabili da un modello; trasformare registrazioni di riunioni in testo riassumibile. In tutti questi casi MarkItDown agisce come primo anello della catena, a costo computazionale irrisorio: gira in locale, su CPU, senza chiamate esterne obbligatorie.

Come funziona

Architetturalmente MarkItDown è un sistema modulare basato su converter specializzati, uno per famiglia di formati. Sotto il cofano orchestra librerie consolidate dell'ecosistema Python: mammoth per i file Word (convertiti prima in HTML intermedio e poi in Markdown tramite BeautifulSoup), python-pptx per le presentazioni (da cui estrae testo, forme e tabelle delle slide), pandas per i fogli Excel (renderizzati come tabelle Markdown), pdfminer.six per i PDF.

L'uso è volutamente banale. Da riga di comando:

pip install markitdown
markitdown bilancio.xlsx -o bilancio.md
markitdown https://esempio.it/pagina -o pagina.md

Da codice Python, per integrarlo in una pipeline:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.docx")
print(result.text_content)

Alcuni punti tecnici che vale la pena conoscere:

  • Dipendenze opzionali: la libreria è organizzata in gruppi di dipendenze (pip install 'markitdown[pdf,docx]'), così si installa solo ciò che serve per i formati realmente usati.
  • Plugin di terze parti: esiste un sistema di plugin — ad esempio markitdown-ocr — per estendere le capacità di estrazione, come l'OCR del testo incorporato nelle immagini dentro PDF e Office.
  • Integrazione LLM opzionale: passando un client LLM, le immagini possono essere descritte automaticamente in linguaggio naturale dentro il Markdown generato.
  • Server MCP integrato: il pacchetto include un server Model Context Protocol, quindi gli assistenti AI compatibili con MCP possono invocare la conversione direttamente come strumento.
  • Conversione in memoria: oltre ai file su disco, accetta stream binari, utile per pipeline web che ricevono upload senza scrivere su filesystem.

Limiti da conoscere

Essere enciclopedici significa anche dire cosa MarkItDown non fa. Primo: non è un convertitore ad alta fedeltà. Se il requisito è preservare il layout esatto, tabelle complesse con celle unite, formule matematiche o impaginazione sofisticata, servono strumenti specializzati come Docling di IBM, Marker o servizi di document intelligence dedicati. Secondo: i PDF scansionati (immagini senza livello testuale) restituiscono output vuoto o quasi, salvo integrare un motore OCR. Terzo: la trascrizione audio si appoggia di default a servizi esterni, quindi richiede connessione di rete e attenzione alla privacy dei dati aziendali — un aspetto non secondario per chi opera in ambito GDPR. Infine, per le immagini senza testo incorporato l'output contiene solo i metadati, a meno di configurare la descrizione via LLM.

La regola pratica: MarkItDown eccelle come primo passaggio di ingestion per testo prevalentemente nativo digitale; per documenti critici, scansionati o con layout complessi va affiancato a parser specializzati.

Perché conta per PMI, founder e agenzie

Tre ragioni. La prima è economica: l'ingestion documentale è storicamente una delle voci più costose dei progetti AI aziendali, tra licenze di parser commerciali e sviluppo custom. Una libreria MIT, installabile con un comando e mantenuta da Microsoft, abbatte questa barriera. La seconda è strategica: il patrimonio informativo delle PMI italiane vive nei formati Office. Avere un ponte affidabile tra quel mondo e gli LLM significa poter costruire assistenti interni, ricerca semantica e automazioni senza migrare nulla. La terza è operativa: essendo diventato uno standard de facto, MarkItDown è già integrato o referenziato da gran parte dei framework RAG e dei tool agentici, il che riduce il rischio di adozione e semplifica la manutenzione futura.

Dove trovarlo

Il codice sorgente, la documentazione e la lista aggiornata dei formati supportati sono sul repository GitHub github.com/microsoft/markitdown, con licenza MIT. L'installazione avviene da PyPI con pip install markitdown, oppure tramite l'immagine Docker ufficiale per chi preferisce ambienti isolati. Esiste anche un'estensione non ufficiale per VS Code che porta la conversione nel menu contestuale dell'editor. Per iniziare basta un file Excel o Word qualsiasi e un comando: il modo più rapido per capire se fa al caso vostro è convertire un documento reale e guardare il Markdown che ne esce.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere