把 PDF、Word、PPT、Excel 喂给大模型,结果不是乱码就是表格崩了,要么整个结构完全丢失。为每种格式写一套转换脚本——PDF 用 PyPDF2,Word 用 python-docx,PPT 用 python-pptx——折腾半天输出的还是一堆格式混乱的纯文本。
微软开源的 MarkItDown 解决了这个问题:任何文件丢进去,直接输出干净、可直接喂大模型的 Markdown。
它在 GitHub 上已斩获 14.1 万+ Star,Fork 数 9600+,是当前最热门的 AI 文档处理工具之一。

MarkItDown 是什么?
MarkItDown 来自微软 AutoGen 团队——就是那个开发了多智能体框架 AutoGen 的团队。最初,他们为了参加 GAIA 基准测试需要一个可靠的数据管道来喂 AI agent,发现市面上没有好用的工具,干脆自己造了一个。
为什么选择 Markdown 作为输出格式?两个关键原因:
- Token 效率极高:HTML 的一个标题要消耗 23 个 token,而 Markdown 只需要 3 个 token。放大到几千份文档,节省的 token 费用不是小数目。
- 大模型天生懂 Markdown:GPT、Claude 等主流模型都是吃 Markdown 长大的——GitHub 代码文档、Stack Overflow 问答、技术博客,海量 Markdown 文本早已深深印在训练数据里。
Markdown 的标题层级、列表、表格、代码块这些结构,能让 RAG 系统更智能地分块,检索更精准,幻觉更少。
核心能力
超强文件支持
MarkItDown 支持的文件格式覆盖了绝大多数办公和 AI 应用场景:
- 文档类:PDF、Word(DOCX)、EPub
- 演示类:PowerPoint(PPTX)
- 表格类:Excel(XLSX/XLS)、CSV
- 数据类:JSON、XML、HTML
- 多媒体:图片(EXIF 元数据 + OCR)、音频(语音转文字)
- 其他:ZIP 压缩包(自动遍历内容)、YouTube 视频链接
连 YouTube 视频链接丢进去,它都能自动获取字幕转成 Markdown。
结构极致保留
MarkItDown 的设计哲学非常清晰:专注于为 AI 服务,而不是追求人类视觉的完美还原。标题层级、表格、列表、链接、代码块、图片描述,这些语义元素都完美保留。
Word 文档转换用的是成熟的 mammoth 库,先转 HTML 再清洗成规范的 Markdown,标题层级、粗体斜体、链接都准确还原。Excel 能把多张工作表转成 Markdown 表格,对齐工整。
安装与使用
MarkItDown 提供了三种使用方式:
方式一:命令行
# 安装
pip install 'markitdown[all]'
# 转换文件
markitdown 报告.pdf > 报告.md
# 管道操作
cat 报告.pdf | markitdown
# 指定输出文件
markitdown 报告.pdf -o 报告.md
方式二:Python API
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("季度报告.xlsx")
print(result.text_content)
方式三:Docker
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < input.pdf > 输出.md
进阶功能
LLM 智能图像描述
传入 OpenAI 兼容客户端,MarkItDown 可以对图片进行智能描述:
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(
llm_client=client,
llm_model="gpt-4o"
)
result = md.convert("产品截图.jpg")
print(result.text_content)
不仅能提取文字,还能获得 AI 生成的场景描述。
Azure 企业级集成
对于有更高精度需求的企业用户:
- Azure Document Intelligence:云端高精度文档解析,适合扫描件 PDF、复杂表格等场景
- Azure Content Understanding(v0.1.6 新增):支持音频、视频等多模态文件转换,通过自定义分析器提取结构化字段(如发票金额、合同条款),以 YAML 格式输出
from markitdown import MarkItDown
md = MarkItDown(cu_endpoint="your_endpoint")
result = md.convert("invoice.pdf")
print(result.markdown)
实际应用场景
RAG 知识库搭建
企业内部有大量 PDF、Word 格式的规章制度和操作手册。用 MarkItDown 批量转换为 Markdown 后,喂给向量数据库,就能搭建起精准的内部知识问答系统。
自动化文档分析
金融分析师需要定期处理大量研报。将 PDF 研报批量转为 Markdown 后,可以让 LLM 自动提取关键指标、生成摘要、对比分析不同报告的观点差异。
多语言内容处理
跨国公司需要将各国分公司的 Excel 报表统一汇总。MarkItDown 可以先将所有 Excel 转为结构化 Markdown,再交给 LLM 进行翻译和数据标准化处理。
为什么 MarkItDown 能火?
- 切中了真实痛点:文档格式转换是 AI 应用落地的第一道门槛,几乎每个 LLM 开发者都会遇到
- 微软背书 + AutoGen 生态:作为微软 AutoGen 团队的官方工具,质量和后续维护有保障
- 设计理念清晰:从一开始就明确是为 AI 服务的,专注于保留语义结构
苏米注:如果你正在搭建 RAG 系统、开发 AI 应用,或者只是需要批量处理文档喂给大模型,MarkItDown 绝对值得加入你的工具链。一行 pip install 就能解决过去需要写十几个转换脚本的问题。
GitHub 地址:github.com/microsoft/markitdown