Toto je starší verze dokumentu!
MarkItDown
MarkItDown je lehký Python nástroj od Microsoftu pro převod různých formátů souborů do Markdownu. Primárně je určen pro přípravu obsahu pro LLM a textové analytické pipeline.
Na rozdíl od nástrojů jako Pandoc se MarkItDown zaměřuje na zachování struktury dokumentu (nadpisy, tabulky, seznamy, odkazy) spíše než na vizuální věrnost výstupu.
Podporované formáty
- PDF
- PowerPoint (.pptx)
- Word (.docx)
- Excel (.xlsx, .xls)
- Obrázky (EXIF metadata, OCR)
- Audio (EXIF metadata, přepis řeči)
- HTML
- Textové formáty (CSV, JSON, XML)
- ZIP (iteruje obsah)
- YouTube URL (přepis titulků)
- EPub
- a další
Instalace
Požadavky: Python 3.10 nebo vyšší.
Z PyPI (doporučeno pro použití)
pip install 'markitdown[all]'
Ze zdrojového kódu (pro vývoj nebo úpravy)
# 1. Klonovat repozitář git clone https://github.com/microsoft/markitdown.git markitdown # 2. Vytvořit virtuální prostředí uvnitř složky projektu python3 -m venv markitdown/.venv # 3. Nainstalovat závislosti přes venv pip markitdown/.venv/bin/pip install -e 'markitdown/packages/markitdown[all]'
Přepínač -e (editable install) zajistí, že změny ve zdrojovém kódu se projeví okamžitě bez reinstalace.
Přípona [all] nainstaluje všechny volitelné závislosti. Lze instalovat jen vybrané formáty:
pip install 'markitdown[pdf,docx,pptx]'
| Skupina | Formát |
|---|---|
[pptx] | PowerPoint |
[docx] | Word |
[xlsx] | Excel |
[xls] | Starší Excel |
[pdf] | |
[outlook] | Outlook zprávy |
[audio-transcription] | WAV a MP3 |
[youtube-transcription] | YouTube titulky |
[az-doc-intel] | Azure Document Intelligence |
Použití
Příkazová řádka
# Základní konverze markitdown dokument.pdf > dokument.md # Se zadáním výstupního souboru markitdown dokument.pdf -o dokument.md # Pipe cat dokument.pdf | markitdown
Python API
from markitdown import MarkItDown md = MarkItDown() result = md.convert("soubor.xlsx") print(result.text_content)
S popisem obrázků přes LLM (pouze pro PPTX a obrázky):
from markitdown import MarkItDown from openai import OpenAI client = OpenAI() md = MarkItDown(llm_client=client, llm_model="gpt-4o") result = md.convert("prezentace.pptx") print(result.text_content)
Azure Document Intelligence
markitdown dokument.pdf -o dokument.md -d -e "<endpoint>"
MCP server
MarkItDown nabízí také MCP server pro integraci s LLM aplikacemi (Claude Desktop apod.) — viz balíček markitdown-mcp.