微软 MarkItDown:把一切文档转成 Markdown 的开源神器,GitHub 本周涨了 6000+ Star
这周 GitHub Trending 上有个项目突然冲到榜首——微软的 MarkItDown,7 天涨了 6,635 颗 Star,总 Star 已经破 15 万。
功能一句话能说清楚:什么文件丢进去,出来的都是 Markdown。
PDF、Word、Excel、PPT、HTML、图片、音频,甚至 YouTube 链接,都能转。
但你可能会问:微软干嘛花时间做这个?转格式不是早就有人做了吗?
这就得聊到 LLM 的一个细节了。
你用 GPT-4o 或者 Claude 的时候,哪怕没要求它用 Markdown,回复里照样有 ## 标题、- 列表、``` 代码块。
原因不复杂——训练数据里 Markdown 太多了。GitHub、Reddit、Stack Overflow、技术文档……全是 Markdown。模型”吃”进去的时候,它就成了最熟悉的表达方式。
而且 Markdown 对模型来说效率极高:
同样的内容,Markdown 比 HTML 省 30% 到 50% 的 Token。标题层级、表格、列表这些结构信息都在,但没有 HTML 那堆标签噪音。人看得懂,模型也理解得准。
所以现在搭 RAG 系统的人,都会先把文档转成 Markdown 再灌向量库。检索准确率比直接切 PDF 高一截。
MarkItDown 就是在这个需求点上打了一颗钉子。
支持的格式
日常能碰到的格式基本都覆盖了:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我比较意外的是 YouTube 支持——丢个链接,它直接拉字幕转文本。做竞品分析、内容摘要的时候这招挺省事。
安装
pip install 'markitdown[all]'
Python 3.10+。也可以按需装:
# 只处理 PDF、Word、Excelpip install 'markitdown[pdf,docx,xlsx]'
Docker 也行:
docker build -t markitdown:latest .docker run --rm -i markitdown:latest < document.pdf > output.md
基础用法
命令行最直接:
# PDF → Markdownmarkitdown report.pdf > report.md# 指定输出文件markitdown report.pdf -o report.md# 管道cat report.pdf | markitdown# YouTube 转录markitdown "https://www.youtube.com/watch?v=xxxxx" -o transcript.md
Python 里也简单:
from markitdown import MarkItDownmd = MarkItDown()result = md.convert("report.pdf")print(result.text_content)
三种转换模式,按需选
内置转换器跑本地,免费,应付普通文档够了。但有些 PDF 排版复杂——多栏、嵌套表格——本地模式效果就差点。这时候可以上 Azure:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
三个层级,成本和质量自己把控。平时用内置,碰到难啃的上 Azure。
进阶:让 LLM 帮你”看”图片
文档里嵌了技术架构图、流程图?MarkItDown 可以把图片丢给 LLM 生成文字描述:
from markitdown import MarkItDownfrom openai import OpenAIclient = OpenAI()md = MarkItDown( llm_client=client, llm_model="gpt-4o")result = md.convert("architecture_doc.pdf")# 输出里图片变成了文字描述
做 RAG 的话这功能很关键——原本图片里的信息没法被检索,现在变成文字就能搜了。
插件
装个 markitdown-ocr,能从文档内嵌图片里 OCR 提取文字:
pip install markitdown-ocr
md = MarkItDown(enable_plugins=True, llm_client=OpenAI(), llm_model="gpt-4o")result = md.convert("scanned_doc.pdf")
更多插件搜 GitHub 标签 #markitdown-plugin。
几个实际用法
搭 RAG 知识库。 把公司的产品手册、技术方案、合同模板全转 Markdown,灌向量数据库。结构化的 Markdown 在检索阶段表现比原始 PDF 好得多。
批量分析文档。 手里有 100 份合同要让 AI 审?先统一转 Markdown,Prompt 模板可以复用,输出也稳定。不用每种格式写一套处理逻辑。
把”搜不到”的东西变可搜。 YouTube 视频、会议录音、邮件——转成文字以后就能全文检索了。很多公司知识资产的死角,用这一个工具基本能覆盖。
注意事项
-
1. 输出是给机器看的,不是精排。要像素级还原排版的话这工具不合适。 -
2. 别直接处理不信任来源的文件。用 convert_local()或convert_stream()更安全。 -
3. Azure 的 Document Intelligence 和 Content Understanding 按调用收费。纯本地模式一直免费。
最后
这个工具做的事很窄,就是把各种格式转成 Markdown。不搞平台,不整生态。
但恰恰是这种”单点”需求,现在成了每套 RAG 系统、每个 AI 知识库、每条内容分析管道的硬依赖。15 万 Star 就是这么来的。
试试看,装好只要一分钟。
项目地址:https://github.com/microsoft/markitdown许可证:MIT · 最新版本:0.1.6
夜雨聆风