MarkItDown:把20+种文档格式转成Markdown喂给LLM
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
当你需要把一份PDF报告转成Markdown再喂给LLM时,一行命令就够了。MarkItDown是一款Python文档转换工具,支持PDF、Word、Excel、图片、音频等20多种格式,输出会保留文档的标题、列表、表格和链接。
项目定位
MarkItDown由微软AutoGen团队开发,是一个轻量Python工具(要求Python 3.10+,MIT协议)。它在工具链里的位置是"文档到LLM之间的适配器":不追求像素级还原版式,而是保留标题、列表、表格、链接等结构,给下游大模型和文本分析管线一份干净的输入。
仓库自带的测试资产里就有大量真实输入文档,比如这篇学术论文首页——正是它最常处理的PDF输入。
核心能力拆解
格式覆盖与按需安装依赖
内置转换器按格式拆分在converters/目录下,覆盖PDF、PPTX、DOCX、XLSX、图片、音频、HTML、CSV/JSON/XML、ZIP、EPUB、Outlook邮件,连YouTube视频转录都有。
pip install 'markitdown[all]' # 全量安装 pip install 'markitdown[pdf, docx]' # 只装PDF和Word支持依赖按格式分组的意义在于装得少:只用Word就加[docx],体积比全量安装小很多。
CLI、管道、Python三种调用方式
同一个转换引擎,三种调用方式任选:
markitdown report.pdf -o report.md cat report.pdf | markitdownfrom markitdown import MarkItDown print(MarkItDown().convert("test.xlsx").text_content)批量脚本里循环调用convert()即可;想收紧输入面,还可以换用convert_local()或convert_stream()。
LLM增强的图片描述
传入OpenAI兼容客户端后,它会给图片生成文字描述,配合OCR插件还能识别文档内嵌图片里的文字:
from openai import OpenAI md = MarkItDown(llm_client=OpenAI(), llm_model="gpt-4o")不传llm_client时该能力静默关闭,回退到内置转换器,不影响基础转换。
一个完整工作流:PDF到LLM可用的Markdown
以"把研究报告PDF交给LLM分析"为例,三步走完:
markitdown research_report.pdf -o analysis.md head -n 50 analysis.md cat analysis.md | your_llm_app第一条命令完成转换,得到保留标题与表格的Markdown;第二条抽查结构质量;第三条直接把文本流进下游应用,或在Python管线里写库。
生态与扩展
扩展能力拆在独立包里,核心包保持轻量:
pip install markitdown-ocr:OCR插件,给PDF、DOCX、PPTX、XLSX增加图片文字提取- Azure Document Intelligence:CLI加
-d -e <endpoint>,云端版面分析,扫描件和复杂表格质量更高 - 示例插件:实现一个
DocumentConverter即可新增格式 - markitdown-mcp:MCP服务器,让Agent应用直接调用转换
收尾:什么时候选它
MarkItDown的价值在于把二进制文档变成LLM友好的Markdown,让你的管线不用关心输入格式。
需要批量把PDF、Office文档、图片变成文本输入时,它是省事的选择;如果你要的是给人看的、像素级还原排版的转换,那应该选专门的排版转换工具。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考