MarkItDown 文档转 Markdown 指南:5 分钟把 PDF、Word、Excel 统一成可检索文本
MarkItDown 文档转 Markdown 指南5 分钟把 PDF、Word、Excel 统一成可检索文本【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown收到一份 40 页的 PDF 报价单想把内容丢进团队知识库MarkItDown 可以把它连同 Word、Excel 文档一起离线转成 Markdown 文本。 一分钟认知 MarkItDownMarkItDown 是微软开源的轻量 Python 工具把各类文件统一转成 Markdown主要面向把文档喂给大模型或文本分析流程的使用者。维度说明支持格式20 种PDF、Word、Excel、PPT、HTML、图片、音频、ZIP、EPUB、网页链接等多模态能力图片 EXIF 与 OCR、音频转文字、可接 LLM 生成图像描述安装方式pip 一行命令依赖按格式分组可选装扩展方式第三方插件entry point 注册 Azure 云服务两种途径上图是仓库测试用例里的图片样本接入大模型后MarkItDown 会把红色圆形与蓝色正方形这样的图形内容转写成文字。⚙️ 安装并跑通第一次转换环境要求 Python 3.10官方建议在虚拟环境中安装以避免依赖冲突。# 完整安装含所有可选依赖 pip install markitdown[all] # 只装需要的格式 pip install markitdown[pdf,docx]可选依赖组一览依赖组覆盖内容[pdf][docx][xlsx][xls]办公四件套[pptx][outlook]PPT、Outlook 邮件.msg[audio-transcription][youtube-transcription]音频、YouTube 字幕[az-doc-intel][az-content-understanding]Azure 云服务对接装完后得到markitdown命令行三种用法# 单个文件转换输出打印到终端 markitdown 报价单.pdf 报价单.md # 直接写入文件 markitdown 报价单.pdf -o 报价单.md # 批量目录里每个 PDF 生成同名 .md for f in *.pdf; do markitdown $f -o ${f%.pdf}.md; done也可以不传文件名从标准输入读取cat 报价单.pdf | markitdown。Python API 的最小可用示例from markitdown import MarkItDown md MarkItDown() result md.convert(test.xlsx) print(result.markdown) 它凭什么能转模块化转换器架构MarkItDown 的设计很直接每种文件类型对应一个独立的转换器模块放在 converters 目录下例如converters/_pdf_converter.py、converters/_docx_converter.py、converters/_html_converter.py。基类DocumentConverter_base_converter.py定义两个方法accepts()判断这个文件归我管吗convert()执行实际转换调用convert()时先用内容嗅探magika加扩展名判断文件类型再按优先级分发给对应的内置转换器第三方插件通过 entry point 单独注册不改动核心代码也互不干扰这种拆法的实际好处PDF 解析逻辑出问题不影响 Word 转换你只装[docx]时也不会背上 PDF 的依赖。️ 文本之外的内容图片、音频与 AI 描述图片默认读取 EXIF 元数据在初始化时传入llm_client和llm_model后会调用大模型为 PPT、图片文件里的内嵌图形生成文字描述音频需安装[audio-transcription]WAV、MP3 会被转录为文字传 YouTube 链接则获取视频字幕扫描件与内嵌图markitdown-ocr 插件可把 PDF、DOCX、PPTX、XLSX 里嵌的图片交给 LLM Vision 提取文字插件未配 LLM 时会静默跳过、回退到内置转换器进阶示例含图像描述与插件开关from markitdown import MarkItDown from openai import OpenAI md MarkItDown( enable_pluginsTrue, llm_clientOpenAI(), llm_modelgpt-4o, ) print(md.convert(example.jpg).markdown) 按场景挑着用批量把论文 PDF 转 Markdown 入库本地转换保留标题层级、列表与表格结构转完即可导入笔记软件做全文检索for f in *.pdf; do markitdown $f -o ${f%.pdf}.md; done公式与复杂版式的保真度有限入库前建议抽几篇人工核对。从发票 PDF 提取结构化信息内置转换只能给出表格文本要拿到金额、日期这类字段用 Azure Content Understanding 的预置或自定义 analyzer字段以 YAML front matter 形式输出免去自己写解析规则。把网页与素材统一成 Markdownconvert()接受 URL 作为输入网页、RSS 源、Wikipedia 页面有专门转换器YouTube 链接取字幕EPUB 电子书也能转——素材来源不同出口都是同一种格式。 进阶与边界插件系统第三方包注册到markitdown.plugin入口即可扩展新格式仓库里的 sample-plugin 是最小参考Azure Content Understanding一个 endpoint 覆盖文档、图片、音频、视频支持自定义 analyzer 提取业务字段每次转换是计费调用边界输出主要面向机器LLM、检索消费不是像素级复刻复杂版式的文档建议人工校对⚠️ 安全提醒MarkItDown 以当前进程权限进行 I/O会访问进程可访问的一切资源。处理不可信文件前先校验并限制输入路径、URI 与网络目标并优先调用convert_local()/convert_stream()这类最小权限接口而不是万能入口convert()。❓ 常见问题Q1装了markitdown[all]还提示缺依赖[all]覆盖全部可选依赖组若仍报错多半是 Python 版本低于 3.10或 pip 版本过旧升级后再装一次。Q2转换出来的 Markdown 和原文长得不一样这是设计取向输出面向 LLM 与文本分析不是高保真复刻。复杂版式、跨页表格建议走 Document Intelligence 或 Content Understanding。Q3服务器场景能直接把用户上传的文件喂给它吗不建议。convert()默认会拉取 URL 并读取本地路径先做输入消毒再改调convert_stream()并限制网络出口。MarkItDown 是多格式文档转换管线的预处理入口离线、开源一条命令起步——pip install markitdown[all]。【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考