编程 微软开源 MarkItDown:万能格式转换神器,15+ 格式统一转 Markdown,狂揽 140K+ Star!

2026-06-13 08:23:13 +0800 CST views 9

微软开源 MarkItDown:万能格式转换神器,15+ 格式统一转 Markdown,狂揽 140K+ Star!

标签: MarkItDown / 微软开源 / 文件格式转换 / Markdown / RAG / LLM / OCR / PDF / Office
原文: 微信公众号「AI有道」https://mp.weixin.qq.com/s/gS0lgFsPdoDeLyrcbfAJfA
GitHub: https://github.com/microsoft/markitdown


核心亮点

MarkItDown 是微软 AutoGen 团队开源的文件格式转换工具,将 15+ 种常见文件格式统一转成 Markdown,包括 PDF、Office 全家桶、图片、音频、视频、HTML、YouTube 链接。GitHub 140K+ Stars,一行命令搞定。


痛点:LLM 读不懂你的文件

LLM 应用的落地速度远超预期,但现实中资料都是 PDF、Word、PPT、Excel 这些格式。想让 AI 读懂,得先转成纯文本。

常见困境

  • ❌ 一个项目里既有合同 PDF、产品文档 Word、数据表格 Excel
  • ❌ 格式五花八门,每种都得写个解析器
  • ❌ 这恰恰是 RAG 系统和 AI Agent 开发最头疼的环节

MarkItDown 是什么?

把现实中五花八门的文件,用一套统一的管道转成 LLM 最擅长理解的 Markdown。

核心数据

  • GitHub Stars: 140,000+
  • 🏢 出品: 微软 AutoGen 团队
  • 📄 支持格式: 15+
  • 📝 输出格式: Markdown(LLM 优化)

设计哲学

围绕"让 LLM 更好理解"这个核心目标。输出的 Markdown 是专门为 LLM 优化的,GPT-4o 这类模型天生就"说"Markdown,Token 效率比 JSON、XML 高得多。


支持格式:15+ 种全覆盖

📄 文档类

格式说明
PDF支持文本版和扫描版(需 OCR)
Word (.docx)保留标题、列表、表格、样式
PowerPoint (.pptx)提取每页内容,支持图片描述
Excel (.xlsx/.xls)表格转成 Markdown 表格

🖼️ 富媒体类

格式说明
图片 (JPG/PNG/GIF...)EXIF 元数据 + OCR 文字 + LLM 图片描述
音频 (WAV/MP3)EXIF 元数据 + 语音转文字
视频提取字幕 + 场景描述(需 Azure)

🌐 Web 类

格式说明
HTML智能解析,保留链接和结构
YouTube自动下载字幕并转换

📊 数据类

格式说明
CSV转成 Markdown 表格
JSON格式化显示
XML结构化提取

📦 打包类 & 邮件

格式说明
ZIP自动遍历内部文件逐个转换
EPUB电子书章节提取
Outlook (.msg)邮件内容、附件、元数据

核心能力

1. 插件系统

支持第三方扩展:

  • markitdown-ocr 插件:用 GPT-4o Vision 能力给 PDF、Word、PPT 里的图片做 OCR
  • 不需要额外装 Tesseract 等重量级依赖

2. Azure AI 集成

  • 对接 Azure Document Intelligence 和 Content Understanding
  • 处理扫描版 PDF、复杂表格、多页文档
  • 从视频、音频里提取结构化字段
  • 质量比本地转换高一个档次

3. LLM 图片描述

如果文件里有图片,能接入 GPT-4o 自动生成图片描述,让 LLM 也能"看懂"图表和截图。


上手方式

安装

# 环境要求:Python 3.10+
pip install markitdown

命令行使用

基础用法

markitdown file.pdf > output.md

启用插件

markitdown --plugins markitdown-ocr file.pdf

Azure AI 增强

markitdown --azure-content-understanding file.pdf

Python API

基础用法

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("file.pdf")
print(result.text_content)

带 LLM 图片描述

md = MarkItDown(llm_client=llm_client)
result = md.convert("file.pdf")

启用 OCR 插件

md = MarkItDown()
md.enable_plugins(["markitdown-ocr"])
result = md.convert("file.pdf")

Docker 使用

docker run markitdown --help

效果展示

PDF 合同转换

转换前:10 页扫描版合同 PDF,文字都在图片里。

使用 MarkItDown + OCR 插件后:得到完整 Markdown 文档,所有条款、表格、签名区都提取出来,LLM 可以直接分析合同风险点。

音频转录

30 分钟会议录音,直接转成文字记录。


性能测试

MacBook Pro (M1 芯片) 测试结果:

格式转换速度
PDF秒级
Word秒级
Excel秒级
PowerPoint秒级
HTML秒级
音频稍慢(转录耗时)

除了音频转录稍慢,其他格式基本都是秒级响应,完全能用在实时场景。


集成到 RAG 系统

MarkItDown 最典型的应用场景就是构建 RAG 知识库:

  1. 批量转换各种格式文档为 Markdown
  2. 将 Markdown 文本向量化存储
  3. 通过 LLM 进行知识检索和问答

可选依赖

MarkItDown 采用按需安装设计,可以只装需要的格式支持。


写在最后

它没有试图重新发明文档格式,而是把现实中五花八门的文件,用一套统一的管道转成 LLM 最擅长理解的 Markdown,让开发者专注业务逻辑,而不是陷入格式解析的泥潭。

核心价值

15+ 格式统一转换 —— PDF、Office、图片、音频、视频、HTML、YouTube
为 LLM 优化输出 —— Markdown 格式,Token 效率高
OCR + 语音转录 + Azure AI —— 扫描版 PDF 也能处理
插件系统 —— 可扩展,支持第三方插件
一行命令 —— pip install + markitdown 即可使用
RAG 集成 —— 完美配合知识库构建

适合谁?

  • 构建 RAG 系统和 AI Agent 的开发者
  • 需要批量处理多格式文档的团队
  • 想让 LLM 读懂 PDF/Office/多媒体文件的项目

相关链接


Keywords: MarkItDown, 微软开源, 文件格式转换, Markdown, RAG, LLM, OCR, PDF, Word, Excel, PowerPoint, 知识库, AI Agent, Azure AI

推荐文章

宝塔面板 Nginx 服务管理命令
2024-11-18 17:26:26 +0800 CST
在 Rust 生产项目中存储数据
2024-11-19 02:35:11 +0800 CST
gin整合go-assets进行打包模版文件
2024-11-18 09:48:51 +0800 CST
linux设置开机自启动
2024-11-17 05:09:12 +0800 CST
CSS 实现金额数字滚动效果
2024-11-19 09:17:15 +0800 CST
JavaScript设计模式:发布订阅模式
2024-11-18 01:52:39 +0800 CST
nuxt.js服务端渲染框架
2024-11-17 18:20:42 +0800 CST
程序员茄子在线接单