简介
Microsoft 开源的 MarkItDown 是一个功能强大的 Python 工具,专注于将多种文件格式(如 Office 文档、图像、音频等)转换为标准化的 Markdown 格式。
一、工具简介 MarkItDown 由微软开发,旨在简化文档管理和知识库构建流程。它通过智能解析和转换技术,支持 OCR 文字识别、元数据提取、语音转文字等功能,特别适合需要结构化处理多源数据的场景。
二、核心功能
- 支持格式广泛
- 文档类:Word、Excel、PPT、HTML、PDF、ZIP(可遍历内容)。
- 多媒体类:图像(支持 EXIF 元数据和 OCR)、音频(语音转录为文本)。
- 结构化数据:CSV、JSON、XML 等文本格式。
- 智能处理能力
- 集成大型语言模型(如 GPT-4o),可自动生成图像描述或优化文本内容。
- 支持 Docker 容器化部署,简化环境依赖。
目前在 GitHub 已经收到 56.3k star🌟。
- GitHub:github.com/microsoft/m…
使用
- 安装
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'
- 命令行
markitdown path-to-file.pdf > document.md
# -o 指定输出文件
markitdown path-to-file.pdf -o document.md
# pipe 内容
cat path-to-file.pdf | markitdown
- 可选依赖项:
pip install 'markitdown[pdf, docx, pptx]'
目前,以下可选依赖项可供使用:- [all]:安装所有可选依赖项。
- [pptx]:安装用于 PowerPoint 文件的依赖项。
- [docx]:安装用于 Word 文件的依赖项。
- [xlsx]:安装用于 Excel 文件的依赖项。
- [xls]:安装用于旧版 Excel 文件的依赖项。
- [pdf]:安装用于 PDF 文件的依赖项。
- [outlook]:安装用于 Outlook 邮件的依赖项。
- [az-doc-intel]:安装用于 Azure Document Intelligence 的依赖项。
- [audio-transcription]:安装用于 wav 和 mp3 文件的音频转录依赖项。
- [youtube-transcription]:安装用于获取 YouTube 视频转录的依赖项。
Python API
- 基础用法:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False) # Set to True to enable plugins
result = md.convert("test.xlsx")
print(result.text_content)
- 文档智能转换:
from markitdown import MarkItDown
md = MarkItDown(docintel_endpoint="<document_intelligence_endpoint>")
result = md.convert("test.pdf")
print(result.text_content)
- 要用大型语言模型进行图像描述,请提供LLM客户端和LLM模型。
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)
Docker 部署
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md
典型应用场景
- 文档管理 将 Office 文件批量转为 Markdown,便于 Git 版本控制和团队协作13。
- 数据分析 转换 CSV/JSON 数据为 Markdown 表格,快速生成报告1。
- 知识库构建 提取图像中的文字(OCR)、音频转录文本,整合为结构化知识库36]。
- 自动化流程 结合 CI/CD 工具,实现文档转换与发布的自动化2]。