项目简介
microsoft/markitdown 是微软开源的一款轻量级 Python 工具,用于将各种文件格式转换为 Markdown 格式,专为 LLM(大型语言模型)及相关文本分析流程设计。2026 年 4 月 11 日登上 GitHub Trending 今日第一,累计 Star 数突破 100,637,今日新增 2,352 Stars。
与 textract 类似,MarkItDown 专注于保留文档重要结构(标题、列表、表格、链接等),而非追求像素级高保真还原。
支持的文件格式
| 格式类型 |
具体支持 |
| 文档 |
PDF、PowerPoint(PPTX)、Word(DOCX)、Excel(XLSX/XLS) |
| 图片 |
EXIF 元数据提取 + OCR 文字识别 |
| 音频 |
EXIF 元数据 + 语音转录 |
| 网页/文本 |
HTML、CSV、JSON、XML |
| 其他 |
ZIP 文件、YouTube URL、EPub 等 |
为什么选择 Markdown?
- Markdown 接近纯文本,标记最少但仍能表示文档结构
- 主流 LLM(如 GPT-4o)原生"理解" Markdown,训练数据中包含大量 Markdown 格式文本
- Markdown 约定具有极高的 token 效率,非常适合喂给大模型
安装
1
2
3
4
5
|
# 安装所有可选依赖(推荐)
pip install 'markitdown[all]'
# 按需安装,如只需 PDF + DOCX + PPTX
pip install 'markitdown[pdf,docx,pptx]'
|
环境要求:Python 3.10+
快速上手
命令行
1
2
3
4
5
6
7
8
|
# 转换 PDF 并输出到文件
markitdown path-to-file.pdf -o document.md
# 管道模式
cat path-to-file.pdf | markitdown
# 启用插件(如 OCR)
markitdown --use-plugins path-to-file.pdf
|
Python API
1
2
3
4
5
|
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("report.xlsx")
print(result.text_content)
|
结合 LLM 进行图片描述
1
2
3
4
5
6
7
|
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("slides.pptx")
print(result.text_content)
|
Docker
1
2
|
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < your-file.pdf > output.md
|
扩展能力
- MCP 服务器:通过
markitdown-mcp 与 Claude Desktop 等 LLM 应用深度集成
- 插件系统:支持第三方插件,如
markitdown-ocr 可通过 LLM Vision 实现 PDF/DOCX/PPTX/XLSX 中图片的 OCR
- Azure 文档智能:可选集成 Microsoft Document Intelligence,进一步提升转换质量
项目信息
总结
MarkItDown 是一个将"任意文档 → Markdown"问题解决得非常干净的工具,尤其适合需要将大量历史文档喂给 LLM 的场景。配合 MCP 服务器,可以轻松集成到 Claude Desktop 等 AI 工作流中。对于构建 RAG 系统、文档索引管道的开发者来说,值得纳入工具箱。