公司动态
MarkItDown:把办公文档转成 Markdown 喂给大模型的实践
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_endpoint、cu_endpoint、llm_client、llm_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),仅供参考