乐于分享
好东西不私藏

给 AI 喂文档太麻烦?微软开源神器,几行代码统一转成标准 Markdown

给 AI 喂文档太麻烦?微软开源神器,几行代码统一转成标准 Markdown

01
简介
Microsoft 开源的 MarkItDown 是一个功能强大的 Python 工具,支持将 PDF、Office 文档(Word/Excel/PPT)、图片、音频、HTML、CSV/JSON/XML 等 20+ 格式 转换为标准化的 Markdown 格式。
其核心价值在于通过 OCR 文字识别、语音转录 和 元数据提取,将复杂文档转化为轻量级结构化文本,为 LLM 数据处理、内容索引和自动化流程提供标准化输入。
补充说明:MarkItDown 由微软 AutoGen 团队开发,依托 AutoGen 框架的生态优势,可无缝对接多智能体应用场景,尤其适合需要将多格式文档转换为统一 Markdown 格式供 AI 分析的场景,目前该工具仍在持续迭代优化,社区贡献活跃。
  • PyPI 官方页面(https://pypi.org/project/markitdown/)无法正常访问,提示“Oops, something went wrong. Please check your connection, disable any ad blockers, or try using a different browser.”,建议优先通过 GitHub 源代码安装;
  • hatch 安装链接(https://hatch.pypa.io/dev/install/)可正常访问,以下将补充该链接内的详细安装方法,替代原“通过 Python 官方渠道获取”的表述。
02
核心功能
支持格式广泛
  • 文档类: Word(DOC/DOCX,可保留标题格式、列表、表格,支持提取批注)、Excel(XLS/XLSX,支持表格结构保留,可解决格式化单元格的货币提取问题)、PPT(PPTX,可提取文本、图片,支持通过 LLM 生成图片描述)、HTML(可提取网页文本及链接结构)、PDF(支持文本提取、表格提取,可通过插件实现 OCR 识别嵌入式图片文本)、ZIP(可遍历压缩包内所有文件并逐一转换)。
  • 多媒体类: 图像(支持 EXIF 元数据提取和 OCR 文本识别,需搭配 LLM 客户端)、音频(支持 EXIF 元数据提取和语音转写,需安装对应可选依赖)。
  • 结构化数据: CSV、JSON、XML 等文本格式,转换后保留原始数据结构。
  • 其他格式: Youtube 链接(可提取视频字幕转写内容)、EPub 电子书(提取文本内容及章节结构),社区正持续贡献旧版 PPT、EML 邮件、ODT 文件等新格式支持。
智能处理能力
  • 集成大型语言模型(如 GPT-4o),可自动生成图像描述或优化文本内容,搭配 markitdown-ocr 插件可实现嵌入式图片的 OCR 文本提取,无需额外安装机器学习库或二进制依赖。
  • 支持 Docker 容器化部署,简化环境依赖,可避免 Python 依赖冲突,目前社区正推进 Docker 多阶段构建优化,区分开发环境和生产环境,后续可获取更轻量的生产级镜像。
  • 可集成 Azure 文档智能服务(原 Form Recognizer),实现更高精度的文档转换,尤其适合复杂格式、多语言的文档提取,有效解决原生转换器精度不足的问题。
  • 支持插件扩展,可通过第三方插件实现功能增强,如 OCR 优化、新格式支持等,插件默认禁用,可通过命令行启用。
03
快速安装
环境配置要求
  • Python 3.10 及以上版本(注:原架构提及的 Python 3.8 及以上版本,结合工具实际要求,建议使用 3.10+ 以避免兼容性问题);
  • pip(Python 包管理器);
  • 建议使用虚拟环境(如 venv、uv、Anaconda)安装,避免依赖冲突;若需使用 hatch 工具进行测试,可参考以下详细安装方法。
虚拟环境创建方法(可选):
  • 标准 Python 命令:python -m venv .venv
  • 激活命令根据系统不同有所差异
  • Linux/macOS:source .venv/bin/activate;
  • Windows 命令提示符:
    .venvScriptsactivate;
    Windows PowerShell:.venvScriptsActivate.ps1);
  • uv 工具:
    uv venv –python=3.12 .venv,激活后建议使用 uv pip install 安装包;
  • Anaconda:conda create -n markitdown python=3.12,conda activate markitdown。
hatch 详细安装方法:
  • pip 安装(简单便捷,注意可能存在依赖冲突):
`pip install hatch`
提示:该方法会修改当前 Python 环境,建议使用 pipx 安装以避免冲突:
`pipx install hatch`
  • Homebrew 安装(macOS 系统):
`brew install hatch`
  • Conda 安装:
`conda install -c conda-forge hatch`
或使用 
mamba:`mamba install hatch`
  • 系统专属安装(macOS/Windows):
  • macOS:通过 curl 下载安装包并安装
curl -Lo hatch-universal.pkg https://github.com/pypa/hatch/releases/latest/download/hatch-universal.pkgsudo installer -pkg ./hatch-universal.pkg -target /
安装后重启终端,输入 `hatch –version` 验证(正常显示 1.16.5 及以上版本)。
  • Windows:通过 msiexec 命令静默安装(64位系统)
`msiexec /passive /i https://github.com/pypa/hatch/releases/latest/download/hatch-x64.msi`
安装后重启终端,输入 `hatch –version` 验证。
一键安装命令
使用 pip 快速安装(推荐安装完整版本,支持所有格式转换):
pip install 'markitdown[all]'
基础版安装(仅支持核心格式转换):
pip install markitdown
开发者源码安装方式
若需获取最新开发版本,可从 GitHub 克隆代码并安装(适用于开发者):
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'
补充说明:部分用户反馈存在因 youtube-transcript-api 依赖问题导致安装失败的情况,该问题已被标记为已完成修复,可更新 pip 版本后重新安装。
04
使用案例
安装好 MarkItDown 后,打开命令行窗口输入命令即可对文件进行转换,支持多种操作方式,以下为常用案例:
案例1:转换 Excel 文件
将 Excel 文件 test.xlsx 转换为 Markdown 文件,两种常用命令:
# 方式1:输出到指定 Markdown 文件
markitdown test.xlsx > test.md
# 方式2:使用 -o 参数指定输出文件(更规范,推荐)
markitdown test.xlsx -o test.md
转换说明:转换后会保留 Excel 表格结构,格式化单元格的货币、日期等内容可正常提取,解决了传统转换工具丢失表格格式的问题。
案例2:转换 PDF 文件(含 OCR 识别)
若 PDF 包含嵌入式图片或扫描内容,可启用 markitdown-ocr 插件进行 OCR 识别,步骤如下:
# 先安装插件及 LLM 客户端
pip install markitdown-ocr
pip install openai
python
# 使用 Python API 转换(支持 OCR 识别)
from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(
enable_plugins=True,
llm_client=OpenAI(),
llm_model="gpt-4o",  # 需使用支持视觉能力的 LLM 模型
)
result = md.convert("包含图片的文档.pdf")
# 保存转换结果
with open("输出文档.md", "w", encoding="utf-8") as f:
f.write(result.text_content)
案例3:管道输入方式转换
适用于批量处理或结合其他命令使用,例如转换 PDF 文件并直接查看结果:
cat 目标文件.pdf | markitdown
案例4:集成 Azure 文档智能转换(高精度)
针对复杂格式 PDF、多语言文档,可集成 Azure 文档智能服务提升转换精度:
markitdown 目标文件.pdf -o 输出文件.md -d -e "<document_intelligence_endpoint>"
其中,`<documentintelligenceendpoint>` 为 Azure 文档智能资源的端点 URL。
05
应用场景
企业级文档自动化
  • 批量转换: 通过命令行实现 CI/CD 集成,批量处理文件夹内所有 PDF 文件,可直接复制使用的实操命令:
# 批量转换 ./docs 目录下所有 PDF 文件,输出为 原文件名.pdf.mdfind ./docs -name '*.pdf'; | xargs -I{} markitdown {} -o {}.md# 批量转换 ./docs 目录下所有 Word 文件,输出到指定文件夹find ./docs -name '*.docx'; -exec markitdown {} -o ./output/{}.md ;
  • 数据湖预处理: 将散落的 Excel 报表、会议录音、邮件附件等统一转换为 Markdown 格式,实操命令:
# 批量转换 Excel 报表(支持 xls/xlsx 格式) find ./reports -name '*.xlsx' -o -name '*.xls' | xargs -I{} markitdown {} -o {}.md# 转换音频文件(需先安装音频依赖:pip install 'markitdown[audio-transcription]')markitdown 会议录音.mp3 -o 会议录音文字稿.md
  • 文档管理优化: 将企业内部的 Word 手册、PPT 汇报材料转换为 Markdown,便于跨平台查看,实操命令:
# 转换 Word 手册并保留批注markitdown 企业手册.docx -o 企业手册.md# 转换 PPT 汇报材料,生成图片描述(需配置 LLM 客户端)markitdown 项目汇报.pptx -o 项目汇报.md --llm-model gpt-4o
学术研究加速
  • 论文解析: PDF 转换后可直接提取方法论、实验数据、参考文献等核心内容,实操命令:
# 转换普通 PDF 论文markitdown 学术论文.pdf -o 论文解析.md# 转换扫描版 PDF 论文(启用 OCR 识别,需先安装插件)markitdown 扫描版论文.pdf -o 扫描论文解析.md --use-plugins --llm-model gpt-4o
  • 教材数字化: 保留原始公式与图表引用,转换后适配 Anki 等记忆工具,实操命令:
# 转换 EPub 教材markitdown 专业教材.epub -o 教材笔记.md# 转换 PDF 教材,保留公式格式markitdown 数学教材.pdf -o 数学教材笔记.md
内容创作提效
  • 跨平台发布: Word 文档转换为 Markdown 后,无缝发布至 GitHub、Notion 等平台,实操命令:
# 转换 Word 文章,保留标题和列表格式markitdown 公众号文章.docx -o 公众号文章.md# 转换 HTML 网页内容,提取核心文本markitdown https://xxx.com/article.html -o 网页文章.md
  • 多媒体处理: 播客、会议录音自动生成带时间戳的文字稿,图片生成描述,实操命令:
# 转换播客音频,生成带时间戳的文字稿markitdown 播客节目.mp3 -o 播客文字稿.md --audio-timestamp true# 转换图片,生成详细描述(需配置 LLM 客户端)markitdown 图文素材.jpg -o 图片描述.md --llm-model gpt-4o
LLM 数据管道
  • 知识库构建: 将企业手册、产品文档等多格式文件转换为 Markdown,供 RAG 模型训练,实操命令:
# 批量转换企业文档(涵盖 PDF/Word/Excel 格式)
find ./company-docs -name '.pdf' -o -name '*.docx' -o -name '*.xlsx' | xargs -I{} markitdown {} -o ./rag-data/{}.md# 转换 ZIP 压缩包内所有文档markitdown 企业文档包.zip -o 文档包转换结果.md
  • 多模态输入: 图片描述 + 音频转录 + 文档内容,形成复合上下文,实操命令:
# 转换图片生成描述markitdown 产品图片.jpg -o 图片描述.md --llm-model gpt-4o# 转换音频生成文字稿markitdown 产品介绍音频.mp3 -o 音频文字稿.md# 合并多模态内容(可结合 shell 命令)cat 图片描述.md 音频文字稿.md 产品手册.md > 多模态上下文.md
项目地址:
https://www.star-history.com/microsoft/markitdown
06
扩展阅读
关注我持续分享高质量内容

终身学习,深耕AI领域

持续分享,优质AI开源

感谢关注,携手AI同行