微软开源 MarkItDown:万能格式转换神器,15+ 格式统一转 Markdown,狂揽 140K+ Star!
标签: MarkItDown / 微软开源 / 文件格式转换 / Markdown / RAG / LLM / OCR / PDF / Office
原文: 微信公众号「AI有道」https://mp.weixin.qq.com/s/gS0lgFsPdoDeLyrcbfAJfA
GitHub: https://github.com/microsoft/markitdown
核心亮点
MarkItDown 是微软 AutoGen 团队开源的文件格式转换工具,将 15+ 种常见文件格式统一转成 Markdown,包括 PDF、Office 全家桶、图片、音频、视频、HTML、YouTube 链接。GitHub 140K+ Stars,一行命令搞定。
痛点:LLM 读不懂你的文件
LLM 应用的落地速度远超预期,但现实中资料都是 PDF、Word、PPT、Excel 这些格式。想让 AI 读懂,得先转成纯文本。
常见困境
- ❌ 一个项目里既有合同 PDF、产品文档 Word、数据表格 Excel
- ❌ 格式五花八门,每种都得写个解析器
- ❌ 这恰恰是 RAG 系统和 AI Agent 开发最头疼的环节
MarkItDown 是什么?
把现实中五花八门的文件,用一套统一的管道转成 LLM 最擅长理解的 Markdown。
核心数据
- ⭐ GitHub Stars: 140,000+
- 🏢 出品: 微软 AutoGen 团队
- 📄 支持格式: 15+
- 📝 输出格式: Markdown(LLM 优化)
设计哲学
围绕"让 LLM 更好理解"这个核心目标。输出的 Markdown 是专门为 LLM 优化的,GPT-4o 这类模型天生就"说"Markdown,Token 效率比 JSON、XML 高得多。
支持格式:15+ 种全覆盖
📄 文档类
| 格式 | 说明 |
|---|---|
| 支持文本版和扫描版(需 OCR) | |
| Word (.docx) | 保留标题、列表、表格、样式 |
| PowerPoint (.pptx) | 提取每页内容,支持图片描述 |
| Excel (.xlsx/.xls) | 表格转成 Markdown 表格 |
🖼️ 富媒体类
| 格式 | 说明 |
|---|---|
| 图片 (JPG/PNG/GIF...) | EXIF 元数据 + OCR 文字 + LLM 图片描述 |
| 音频 (WAV/MP3) | EXIF 元数据 + 语音转文字 |
| 视频 | 提取字幕 + 场景描述(需 Azure) |
🌐 Web 类
| 格式 | 说明 |
|---|---|
| HTML | 智能解析,保留链接和结构 |
| YouTube | 自动下载字幕并转换 |
📊 数据类
| 格式 | 说明 |
|---|---|
| CSV | 转成 Markdown 表格 |
| JSON | 格式化显示 |
| XML | 结构化提取 |
📦 打包类 & 邮件
| 格式 | 说明 |
|---|---|
| ZIP | 自动遍历内部文件逐个转换 |
| EPUB | 电子书章节提取 |
| Outlook (.msg) | 邮件内容、附件、元数据 |
核心能力
1. 插件系统
支持第三方扩展:
- markitdown-ocr 插件:用 GPT-4o Vision 能力给 PDF、Word、PPT 里的图片做 OCR
- 不需要额外装 Tesseract 等重量级依赖
2. Azure AI 集成
- 对接 Azure Document Intelligence 和 Content Understanding
- 处理扫描版 PDF、复杂表格、多页文档
- 从视频、音频里提取结构化字段
- 质量比本地转换高一个档次
3. LLM 图片描述
如果文件里有图片,能接入 GPT-4o 自动生成图片描述,让 LLM 也能"看懂"图表和截图。
上手方式
安装
# 环境要求:Python 3.10+
pip install markitdown
命令行使用
基础用法:
markitdown file.pdf > output.md
启用插件:
markitdown --plugins markitdown-ocr file.pdf
Azure AI 增强:
markitdown --azure-content-understanding file.pdf
Python API
基础用法:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("file.pdf")
print(result.text_content)
带 LLM 图片描述:
md = MarkItDown(llm_client=llm_client)
result = md.convert("file.pdf")
启用 OCR 插件:
md = MarkItDown()
md.enable_plugins(["markitdown-ocr"])
result = md.convert("file.pdf")
Docker 使用
docker run markitdown --help
效果展示
PDF 合同转换
转换前:10 页扫描版合同 PDF,文字都在图片里。
使用 MarkItDown + OCR 插件后:得到完整 Markdown 文档,所有条款、表格、签名区都提取出来,LLM 可以直接分析合同风险点。
音频转录
30 分钟会议录音,直接转成文字记录。
性能测试
MacBook Pro (M1 芯片) 测试结果:
| 格式 | 转换速度 |
|---|---|
| 秒级 | |
| Word | 秒级 |
| Excel | 秒级 |
| PowerPoint | 秒级 |
| HTML | 秒级 |
| 音频 | 稍慢(转录耗时) |
除了音频转录稍慢,其他格式基本都是秒级响应,完全能用在实时场景。
集成到 RAG 系统
MarkItDown 最典型的应用场景就是构建 RAG 知识库:
- 批量转换各种格式文档为 Markdown
- 将 Markdown 文本向量化存储
- 通过 LLM 进行知识检索和问答
可选依赖
MarkItDown 采用按需安装设计,可以只装需要的格式支持。
写在最后
它没有试图重新发明文档格式,而是把现实中五花八门的文件,用一套统一的管道转成 LLM 最擅长理解的 Markdown,让开发者专注业务逻辑,而不是陷入格式解析的泥潭。
核心价值
✅ 15+ 格式统一转换 —— PDF、Office、图片、音频、视频、HTML、YouTube
✅ 为 LLM 优化输出 —— Markdown 格式,Token 效率高
✅ OCR + 语音转录 + Azure AI —— 扫描版 PDF 也能处理
✅ 插件系统 —— 可扩展,支持第三方插件
✅ 一行命令 —— pip install + markitdown 即可使用
✅ RAG 集成 —— 完美配合知识库构建
适合谁?
- 构建 RAG 系统和 AI Agent 的开发者
- 需要批量处理多格式文档的团队
- 想让 LLM 读懂 PDF/Office/多媒体文件的项目
相关链接
- GitHub: https://github.com/microsoft/markitdown
- PyPI: https://pypi.org/project/markitdown/
- 出品团队: 微软 AutoGen
Keywords: MarkItDown, 微软开源, 文件格式转换, Markdown, RAG, LLM, OCR, PDF, Word, Excel, PowerPoint, 知识库, AI Agent, Azure AI