
markitdown
把各种文档一键转成 Markdown,喂给 AI 直接吃
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 194467
使用教程
环境要求
- Python 3.12(README 示例使用 python=3.12 创建环境)
- pip(用于安装 markitdown 包)
- 可选:Docker(使用容器方式构建/运行镜像)
- 可选:hatch(运行测试时需要)
安装与启动步骤
-
1用 pip 安装
直接通过 pip 安装 MarkItDown,方括号中的 all 表示安装全部可选依赖(PDF、OCR、音频等)。
pip install 'markitdown[all]' -
2创建虚拟环境
可选。README 提示在虚拟环境中应使用 uv pip install 而非 pip install;Anaconda 用户可按下方命令建环境。
conda create -n markitdown python=3.12 conda activate markitdown -
3从源码安装
可选。克隆官方仓库后在本地以可编辑模式安装 markitdown 包,注意路径是 packages/markitdown。
git clone git@github.com:microsoft/markitdown.git cd markitdown pip install -e 'packages/markitdown[all]' -
4构建 Docker 镜像
可选。在仓库根目录(含 Dockerfile 的位置)构建名为 markitdown:latest 的镜像。
docker build -t markitdown:latest . -
5转换文件为 Markdown
用 Docker 镜像把本地 PDF 转成 Markdown:输入重定向进容器,输出重定向写入 output.md。把 ~/your-file.pdf 换成你自己的文件路径。
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md -
6运行测试与检查
可选。进入 markitdown 包目录,安装 hatch 后进入其 shell 执行测试;提交 PR 前可运行 pre-commit 检查。
cd packages/markitdown pip install hatch hatch shell hatch test pre-commit run --all-files
如何确认成功
执行转换命令后,当前目录下的 output.md 中能看到原文档转换出的 Markdown 内容(标题、列表、表格等),即表示安装与运行成功。
常见问题
Q:安装时报缺少依赖或某些格式不支持怎么办?
A:使用 pip install 'markitdown[all]' 安装全部可选依赖;只装基础包则 PDF、OCR、音频转写等能力可能不可用。
Q:可以用 Anaconda 管理环境吗?
A:可以。README 给出 conda create -n markitdown python=3.12 与 conda activate markitdown 两条命令创建并激活环境。
Q:不想装 Python 环境,能直接用吗?
A:可以走 Docker:先在仓库根目录 docker build -t markitdown:latest .,再用 docker run --rm -i 重定向输入输出转换文件。
Q:转换结果适合直接给人看吗?
A:README 说明输出主要用于文本分析工具消费,虽通常可读,但并非面向人工阅读的高保真文档转换方案。
注意事项
- MarkItDown 以当前进程的权限执行 I/O,会访问该进程本身可访问的资源;在不可信环境中务必清理输入,并调用最小范围的 convert_* 函数(如 convert_stream()、convert_local())。
- 在虚拟环境中安装时,README 强调使用 uv pip install 而不是 pip install。
- README 未给出 Python API 的完整调用样例和 CLI 参数,实际编码请以官方文档与仓库说明为准。
核心亮点
- 支持 PDF、Office、图片、音频等 10+ 种格式,覆盖日常办公文档
- 可调用 OpenAI 等大模型,对图片和音频进行智能内容提取
- 与 LangChain、AutoGen 等主流 AI 框架无缝集成,即插即用
不足之处
- 转换复杂排版(如表格嵌套、多栏)时可能丢失部分格式细节
- 对非英文文档的 OCR 和语音识别效果依赖底层模型,可能不稳定
- 文档/社区待观察:部分高级功能(如自定义模型接入)需查看源码
适用场景
- 将企业知识库中的 PDF/Word 文档批量转为 Markdown,供 RAG 检索
- 在 AI 应用中预处理用户上传的附件,提取文本用于摘要或问答
- 将演示文稿或电子表格内容快速整理为结构化笔记,供 LLM 分析
替代项目
pandoc、MinerU、docx2txt
同类项目推荐
Pulse
开源
屏幕边缘一眼看清各 AI 编程工具剩余额度
Know how much Claude Code, Codex, Cursor, Copilot and 70+ other AI coding tools you ···
docusaurus-plugin-llms
开源
给文档站自动生成大模型友好的 llms.txt
Docusaurus plugin for generating LLM-friendly documentation following the llmstxt.or···
genoffice
开源
本地 AI 办公套件,让编程智能体直接改 Office 文件
Free, open-source AI Office suite: Docs, Sheets, Slides, PDF, Markdown and HTML edit···
DataInfra-RedactionEverything
开源
本地大模型自动识别并遮盖文档图片里的敏感信息
DataInfra Series. Redact EVERYTHING with local llms and vlms.
Ze-Notes
开源
把 Zotero 里散落的笔记和标注集中可视化,读文献更省心
Zotero plugin for note management. Helping you visualize your notes and annotations ···
guizang-ppt-skill
开源
丢个主题给 AI,马上还你一套杂志级 PPT
AI-agent Skill for generating polished HTML slide decks: editorial magazine and Swis···
compdf-self-hosted
开源
私有部署的 PDF 全能工具箱,转格式、加解密、OCR 一站搞定
Edit, convert, and transform documents across PDFs, Office formats, HTML, TXT, CSV, ···
openclip
开源
选中文字一键跑脚本或本地大模型,剪贴板秒变工作流
An open-source, macOS text action popup for running custom scripts, AI actions, and ···
resume_render_from_job_descripti···
开源
贴个职位链接,AI 自动改好简历
jevos: an open-source alternative to Jev and Microsoft-Decision-1. Yes/no decisions,···