如何 3 步用 MarkItDown 把文档转成 Markdown:扫描件识别与 LLM 集成完整指南
如何 3 步用 MarkItDown 把文档转成 Markdown扫描件识别与 LLM 集成完整指南【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown如果你手上有搜不到字的扫描 PDF或者关键信息被锁在图片里MarkItDown 值得试试。这是一个开源的 Python Markdown 转换工具能把 PDF、Office 文档等常见文件转成 Markdown再配合 LLM大语言模型集成它还能识别扫描页和图片里的文字输出可搜索、能直接喂给大模型的文本。先看两类让你头疼的文档扫描版 PDF打开就是一张图CtrlF 没反应文字印在像素上选不中也复制不了。带文字的图片发票照片、白板拍照、截图想塞进大模型或笔记系统却没有可复制的文本。手动一页页敲太折磨人 自己再搭一套 OCR 管线还得装模型、调参数。MarkItDown 帮你做什么它是一条命令行 一个 Python 库把文件丢进去Markdown 出来。内置转换器覆盖 PDF、Word、PPT、Excel、EPUB、网页、音频等格式一行命令就能跑。识别图片里的文字这一步交给可选的 markitdown-ocr 插件它调用具备视觉能力的 LLM 做文档 OCR 识别覆盖 PDF、Word、PPT、Excel 里嵌入的图片不需要额外安装 OCR 引擎或二进制依赖。三条命令装好并跑通第一次转换第一步装主包all 依赖组会带来完整格式支持pip install markitdown[all]第二步转换任意一个文件用 -o 把结果落到磁盘markitdown test.pdf -o test.md第三步打开生成的 Markdown 验收标题、表格、段落结构都在这就是后面接搜索或大模型的语料。想从源码装的话先 git clone https://gitcode.com/GitHub_Trending/ma/markitdown 再在 packages 目录下安装对应包即可。三个高频场景照着做就行整页都是图的扫描件怎么把字抠出来什么情况下用合同、旧报告、票据扫描件整页是图没有任何可提取的文本。插件会自动发现这种无文本页按 300 DPI 渲染后整页发给视觉模型识别结果再按阅读顺序插回文档。你要做的只有两件事装上插件和客户端pip install markitdown-ocr 和 pip install openai创建转换器时把 LLM 传进去MarkItDown(enable_pluginsTrue, llm_clientOpenAI(), llm_modelgpt-4o)。任何 OpenAI 兼容客户端都行AzureOpenAI 也可以。Word、PPT、Excel 里嵌的图片文字别丢什么情况下用PPT 里的白板照片、Excel 里的截图、Word 里的图表。插件会把每张图片按阅读顺序抽出来识别文字插在图片原本的位置并用[Image OCR]...[End OCR]标记包住周围的标题和表格不受影响。某张图识别失败就跳过那一张不会卡住整份文档的转换。一整个目录的文档批量转 Markdown命令行一次转一个文件。整目录的话写个十几行的循环遍历目录、逐个调用 convert、按原名落 .md 文件套上 try/except某个文件坏了就记下文件名继续别让一个坏件停掉整批。容易踩的坑和参数怎么调没传 llm_client 或 llm_model 时插件照样加载但 OCR 被静默跳过输出和没用 OCR 时一模一样。先用 markitdown --list-plugins 确认列表里有 ocr再回头查客户端参数。模型必须有视觉能力纯文本模型必挂通用选择是 gpt-4o 或任意兼容服务上的视觉模型。识别质量很大程度取决于扫描本身页面模糊、倾斜、分辨率太低换模型也救不回来重扫到 300 DPI 以上再喂。表格老被拆散时用 llm_prompt 覆盖默认提示词明确告诉模型保留表格结构。这套东西适合谁用手里有一批扫描件、Office 文档要变成可搜索文本的人或者要给大模型、RAG 建文档语料的人用它能省下逐页手抄的功夫普通文档用主包就够扫描件再加上 ocr 插件和一个可用的视觉模型就能跑通。想了解更多细节直接看仓库 markitdown-ocr 包里的 README.md参数和示例都写全了。【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考