
用 MarkItDown 三步把扫描件变成 AI 能读的 Markdown【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown手头有一批扫描件、发票和会议纪要需要喂给大模型但模型读不了二进制文件。MarkItDown 是一个把文件和办公文档转成 Markdown 的 Python 工具一条命令就能让 PDF、Word、PPT、图片变成 AI 能直接读取的结构化文本。一张表认识它是什么、能干什么MarkItDown 是微软 AutoGen 团队出品的轻量级文档转换工具。它的设计目标不是把文档排版得好看而是让大模型读得懂文档。输出的 Markdown 会保留标题、列表、表格、链接等结构格式接近纯文本、token 消耗也低适合作为 RAG 或摘要流程的文本预处理环节。维度说明是什么支持 PDF、Word、PowerPoint、Excel、图片、音频、HTML、CSV、ZIP 等格式的 Python 转换工具核心价值输出大模型原生理解的 Markdown并尽量保留文档结构依赖什么Python 3.10 及以上各格式依赖按需安装OCR 与图片描述还需一个 OpenAI 兼容的 LLM 客户端环境准备两条命令装好需要 Python 3.10 及以上版本官方建议用虚拟环境避免依赖冲突。最小配置如下python -m venv .venv source .venv/bin/activate pip install markitdown[all][all]会装齐所有格式的依赖。如果你只需要个别格式把方括号里的内容换成对应格式名即可比如markitdown[pdf, docx]安装体积会小很多。要识别图片里的文字再补装 OCR 插件markitdown-ocr和一个 OpenAI 兼容客户端如 openai。插件的实现很薄机制可以看OCR 插件源码。核心场景把扫描版 PDF 转成 Markdown目的。扫描出来的发票 PDF 通常没有文字层直接转换会得到空内容或乱码。你要的是一份条目、数字都完整的 Markdown。操作。带文字层的文档命令行直接转换即可markitdown path-to-file.pdf -o document.md没有文字层的文档则启用 OCR 插件并传入视觉模型。命令行在上面的命令后追加--use-plugins --llm-client openai --llm-model gpt-4oPython 里只需四行from markitdown import MarkItDown from openai import OpenAI md MarkItDown(enable_pluginsTrue, llm_clientOpenAI(), llm_modelgpt-4o) print(md.convert(scan.pdf).text_content)你会看到的结果。插件会把页面里的图片逐张交给 LLM识别出的文字按原位置插回正文每段识别结果都用*[Image OCR] ... [End OCR]*标记包裹方便下游区分它和原有文字层。整页都是图片的扫描件会自动按 300 DPI 渲染成整页图片送去识别某一张图识别失败时转换不会中断只是跳过那一段。仓库的测试用例里有一张小图专门验证 LLM 读图能力模型被要求报出图中的字符串 5bda1dd6 和两个图形的颜色是判断llm_model参数是否真正生效的简易参照。图用于验证 MarkItDown LLM 读图能力的测试图包含字符串 5bda1dd6、红色圆形与蓝色正方形进阶场景三张卡片介绍场景一句话说明关键命令或参数图片与 PPTX 描述传入 OpenAI 兼容客户端后LLM 为每张图生成文字描述并写入 Markdownllm_client...、llm_modelgpt-4o可用llm_prompt定制措辞音频转写装好音频转写依赖后wav、mp3 会先转写成文字再进入转换流程可选依赖markitdown[audio-transcription]云端高质量提取把版面分析和 OCR 交给 Azure Document Intelligence适合复杂表格和多页扫描件转换命令后追加-d -e endpoint以上能力都是装依赖 传参数就能切换不需要改主转换代码。想自己扩展格式可参考 sample-plugin 示例。 避坑清单五种常见情况怎么处理现象原因处理转 PDF 报不支持或模块缺失没装 pdf 可选依赖用markitdown[all]或markitdown[pdf]安装输出里完全没有图片文字没传llm_client/llm_model或插件未启用用markitdown --list-plugins确认 ocr 在列缺客户端时 OCR 会被静默跳过LLM 报错、转换中断API 密钥无效、配额不足或模型不支持视觉输入检查密钥和配额换带视觉能力的模型插件失败时会降级跳过该图继续转换扫描件识别质量差扫描模糊、分辨率低重新扫描到 300 DPI 以上或改用云端转换无边框表格、合并单元格错乱本地表格提取对复杂版面有限制改用云端端点或人工校对 Markdown 中的表格部分适用边界谁该用什么时候别用如果你的目的是把文档喂给大模型——RAG 预处理、批量抽文本、生成摘要——MarkItDown 的输出正合适。但它的产物是写给机器读的排版美观度不如面向人的文档排版工具要求高保真印刷级还原时别用它。另外服务端转换来路不明的外部文件时按官方安全建议改用convert_local()限定输入来源避免传入不可信路径。今天就能做三步完成第一次转换建好虚拟环境运行pip install markitdown[all]。挑一份手头的 PDF命令行执行markitdown document.pdf -o out.md打开 out.md 检查标题和表格是否保留。如果是扫描件再装markitdown-ocr和openai传入llm_client与llm_model重新转换确认输出里出现*[Image OCR]*标记块。【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考