MarkItDown 是一个轻量级 Python 工具,将各种文件格式转换为 Markdown, 专为 LLM 和文本分析管道设计。保留标题、列表、表格、链接等关键文档结构。
$ pip install 'markitdown[all]'
$ markitdown report.pdf -o output.md
✓ 转换完成 → output.md
$ python
>>> from markitdown import MarkItDown
>>> md = MarkItDown()
>>> result = md.convert("slides.pptx")
>>> print(result.text_content)
为什么选择 MARKDOWN?
Markdown 接近纯文本,标记极少,却能表达重要的文档结构。 GPT-4o 等主流 LLM 原生"说" Markdown,在响应中自发使用它。 这意味着它们在大量 Markdown 文本上训练过,且 token 效率极高。
最小标记开销,极高的 token 效率,对 LLM 管道友好。
完整保留标题、列表、表格、链接等文档结构信息。
支持第三方插件系统,包括 OCR、Azure Document Intelligence 等。
支持格式
PowerPoint
Word
Excel
图片 (OCR)
音频转录
HTML
CSV / JSON / XML
ZIP 文件
YouTube URL
EPub
更多格式…
快速开始
需要 Python 3.10+。建议使用虚拟环境。
使用 pip install 'markitdown[all]' 安装所有依赖,
或按需选择特定格式支持。
# 安装所有功能
pip install 'markitdown[all]'
# 或仅安装特定格式支持
pip install 'markitdown[pdf, docx, pptx]'
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md
可选依赖
只安装你需要的格式支持,保持环境精简。
[pptx]
PowerPoint 文件支持
[docx]
Word 文件支持
[xlsx]
Excel 文件支持
[xls]
旧版 Excel 文件支持
[pdf]
PDF 文件支持
[outlook]
Outlook 消息支持
[az-doc-intel]
Azure Document Intelligence
[audio-transcription]
WAV / MP3 音频转录
[youtube-transcription]
YouTube 视频转录
使用方法
$ markitdown path-to-file.pdf > document.md
# 使用 -o 指定输出文件
$ markitdown path-to-file.pdf -o document.md
# 管道传输
$ cat path-to-file.pdf | markitdown
$ markitdown file.pdf -o doc.md \
-d -e "<endpoint>"
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("test.xlsx")
print(result.text_content)
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(
llm_client=client,
llm_model="gpt-4o",
)
result = md.convert("example.jpg")
print(result.text_content)
生态系统
MarkItDown 支持第三方插件扩展。默认禁用,按需启用。
在 GitHub 搜索标签 #markitdown-plugin 发现更多插件。
# 列出已安装插件
markitdown --list-plugins
# 启用插件转换
markitdown --use-plugins file.pdf
为 PDF、DOCX、PPTX 和 XLSX 转换器添加 OCR 支持,使用 LLM Vision 从嵌入的图像中提取文本。 不需要新的 ML 库或二进制依赖项。
pip install markitdown-ocr openai
from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(
enable_plugins=True,
llm_client=OpenAI(),
llm_model="gpt-4o",
)
result = md.convert("document.pdf")
print(result.text_content)
提供 MCP(模型上下文协议)服务器,用于与 Claude Desktop 等 LLM 应用程序集成。 详见 markitdown-mcp。
重要变更
依赖项现在组织为可选功能组。使用 pip install 'markitdown[all]' 可获得向后兼容行为。
现在需要二进制文件类对象(如以二进制模式打开的文件或 io.BytesIO),不再接受文本文件类对象。
已更改为从文件类流读取而非文件路径,不再创建临时文件。插件维护者需更新代码。
开源社区
本项目欢迎贡献和建议。您可以查看问题、审查 PR,或创建第三方插件。 项目已采用 Microsoft 开源行为准则。
cd packages/markitdown
pip install hatch
hatch shell
hatch test
# 提交前运行 pre-commit 检查
pre-commit run --all-files