MarkItDown 是微软 AutoGen Team 开源的一款轻量级 Python 工具,核心功能是将 PDF、Word、Excel、PowerPoint 等常见办公文档直接转换为 Markdown 格式,专为 LLM 文本分析管道设计。
GitHub 仓库目前保持 94.9k Stars、5.8k Fork 的高热度,项目基于 MIT 许可证开源。

相关链接
- GitHub 仓库:https://github.com/microsoft/markitdown
- PyPI 安装:
pip install 'markitdown[all]' - MCP 服务:https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp
MarkItDown 是什么
MarkItDown 由微软 AutoGen Team 开发,最初动机是解决”让 LLM 高效读取办公文档”这个痛点。市面上文档转换工具并不少,但大多专注视觉保真度(输出的 Markdown 排版漂亮但结构混乱),而 MarkItDown 的设计目标截然不同——输出专为文本分析优化的 Markdown,保留标题、列表、表格、链接等结构信息,舍弃无意义的装饰性样式。
这个定位也解释了为什么 MarkItDown 选择与 textract 对标但路线不同:textract 输出偏向人类阅读,而 MarkItDown 输出偏向机器理解。项目从 0.0.1 到 0.1.0 经历了一次 Breaking Changes,核心接口改为流式读取(不再创建临时文件)。
支持的文件格式
- PDF:支持扫描件 OCR(需安装 markitdown-ocr 插件)
- Word(.docx)
- Excel(.xlsx / .xls)
- PowerPoint(.pptx)
- 图片:EXIF 元数据提取 + OCR 文字识别
- 音频:EXIF 元数据 + 语音转录
- HTML
- 文本格式:CSV、JSON、XML
- ZIP 文件:自动遍历压缩包内所有支持的文件
- YouTube 视频:提取字幕转录文本
- EPub 电子书
为什么选择 Markdown?
主流 LLM(包括 GPT-4o)在训练过程中接触了大量 Markdown 格式文本,对 Markdown 语法理解非常好,甚至会在回复中自发使用 Markdown 标记。这意味着用 Markdown 作为文档交换格式,LLM 能更准确地捕捉原文结构——标题层级、表格行列、列表嵌套关系都能完整保留。另一个实际好处是 Markdown 的 token 效率很高。
快速部署
pip 安装(推荐)
pip install 'markitdown[all]'
如果只需要部分格式支持,可以按需指定依赖组:pip install 'markitdown[pdf,docx,pptx]'。可选依赖组包括:[pptx]、[docx]、[xlsx]、[xls]、[pdf]、[outlook]、[az-doc-intel](Azure 文档智能)、[audio-transcription]、[youtube-transcription]。
Docker 方式
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md
源码安装
git clone [email protected]:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'
使用方式
命令行
markitdown path-to-file.pdf -o document.md
cat path-to-file.pdf | markitdown
Python API
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("document.xlsx")
print(result.text_content)
启用 OCR 插件(处理扫描 PDF)
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("scanned_document.pdf")
print(result.text_content)
MCP 服务器:与 LLM 应用深度集成
MarkItDown 还提供了 markitdown-mcp 包,这是基于 Model Context Protocol 的服务器实现,允许在 Claude Desktop 等支持 MCP 的 LLM 应用中直接调用文档转换功能。
适用人群
- RAG 系统开发者:需要将办公文档入库做检索增强
- AI 应用工程师:文档预处理的轻量选择
- 知识库建设者:批量将历史文档转为 Markdown
- 数据分析师:快速提取 Excel/CSV 中的结构化数据
总结
MarkItDown 的核心优势在于专注 LLM 友好的文档转换,而不是追求视觉完美的排版输出。它解决了文档 → 文本分析管道中最麻烦的一环:结构保留。配合 OCR 插件可以处理扫描件,配合 MCP 服务器可以无缝嵌入 AI 工作流,加上背靠微软 AutoGen 团队持续维护,94.9k Stars 的高热度也印证了社区对这类工具的真实需求。
© 版权声明
本站部分内容源于网络收集,文章等版权归原作者所有,若需删稿请联系管理员邮箱:[email protected]
相关文章
暂无评论...