MarkItDown:把办公文档转成 Markdown 喂给大模型的实践
2026/8/28 16:11:41 网站建设 项目流程

MarkItDown:把办公文档转成 Markdown 喂给大模型的实践

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

手头攒着一批 PDF、PPT、Word、Excel,想先转成 Markdown 再喂给大模型做问答和检索。MarkItDown 就是一个轻量 Python 工具:一条命令把文件转成带标题、列表、表格的 Markdown 文本,本地离线就能跑。

🚀 装好依赖,跑通第一次文档转换

环境要求 Python 3.10 以上。先建个虚拟环境再安装:

pip install 'markitdown[all]' markitdown report.pdf > report.md

[all]一次性装齐 PDF、Office、音频、Azure 云服务的可选依赖;只转某几种格式时,也可以只装markitdown[pdf,docx,pptx]这样对应的子集,装得快一点。

不加-o时结果直接打到终端,markitdown file -o out.md则写入指定文件;cat file.pdf | markitdown这种管道方式同样支持。

📄 转换时保留了什么

标题、列表、表格、链接这些结构会被保留下来,而不是压成一整段纯文本。PPT 每一页的层级会变成 Markdown 标题,Excel 工作簿会转成管道表格,转完就能直接贴进笔记里继续用。

图片和音频走的是另一条路:图片默认输出 EXIF 元信息,接上 LLM 后可以生成图片描述;音频依赖可选依赖做语音转写。这些核心转换逻辑都在 converters 目录里,每种格式一个转换器,想看某类文件怎么被拆解,直接读对应文件就行。

⚙️ 按场景动参数

什么情况下动哪个参数
本地离线转,结构简单的文档不用动,装好后默认就走离线转换器
扫描件、复杂表格,离线效果不够-d -e "端点"走 Document Intelligence,或加--use-cu --cu-endpoint "端点"走 Azure Content Understanding
需要抽出发票金额、日期这类结构字段CU 模式下加--cu-analyzer指定分析器,用--cu-file-types pdf限定只有 PDF 走云端,控制账单
用管道读入、文件没有扩展名-x pdf给扩展名提示,-m给 MIME 类型,-c给编码

Python API 侧则是把docintel_endpointcu_endpointllm_clientllm_model这几个参数直接传给MarkItDown()构造函数,行为与 CLI 一致。

🐳 换个方式跑

不想在本机装依赖,仓库根目录的 Dockerfile 可以直接构建:

docker build -t markitdown:latest . docker run --rm -i markitdown:latest < report.pdf > out.md

让 AI 助手直接调转换的话,另装了markitdown-mcp包后运行markitdown-mcp就起一个 MCP 服务器,只暴露一个convert_to_markdown工具,传 URI 即可。源码见 markitdown-mcp。

❓ 几个容易卡住的地方

Q:转某些格式时报"没有对应转换器"?基础安装只带核心依赖,PDF、PPT、Word、Excel 这些都要靠可选依赖激活。按格式补装即可,例如pip install 'markitdown[pdf,docx,pptx]',装完后不用重启别的,命令照旧。

Q:扫描件转出来几乎是空的?离线转换器只能读 PDF 里的文本层,扫描件是图像,没有文本可读。要么换 Document Intelligence / Content Understanding 的云端提取,要么接markitdown-ocr插件让 LLM 读图补字。

Q:从标准输入读文件时识别不了类型?转换器要靠扩展名、MIME 或编码来猜文件类型,管道模式下没有文件路径可看,就用-x pdf-m-c手动给一个提示。

去项目页翻最新 release 的说明,看看哪些格式和参数是刚加的。

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询