markitdown

2024-12-17

python

为你,千千万万遍。——《追风筝的人》

MarkItDown:轻量级文件转Markdown工具,助力高效文档管理

在现代文本处理和文档管理中,Markdown凭借其简洁的语法和可读性成为开发者和文档编写者的首选格式。而Microsoft推出的MarkItDown工具,提供了一种将多种文件格式快速转换为Markdown的解决方案,极大地提升了文档整理与文本分析的效率。

什么是MarkItDown?

MarkItDown是一个轻量级、开源的工具库,专为文件转换到Markdown格式而设计。它支持多种常见的文件类型,包括PDF、Word、Excel、图片和音频等,帮助用户快速将非结构化内容整理成Markdown文档。

核心特性

  1. 多格式支持

    • PDF (.pdf)
    • PowerPoint (.pptx)
    • Word (.docx)
    • Excel (.xlsx)
    • 图片(EXIF元数据及OCR文本提取)
    • 音频(EXIF元数据及语音转录)
    • HTML(特殊处理维基百科等网页)
    • 其他文本格式(csv, json, xml 等)
    • ZIP文件(自动遍历ZIP内容并逐个转换)
  2. 简单易用的API与命令行工具
    通过Python库调用或直接在终端运行,均能实现文件转换功能。

  3. OCR与语音识别支持

    • 集成OCR技术,提取图片中的文本。
    • 支持音频文件转写为文本内容。
  4. AI描述增强
    可结合大语言模型(如GPT)生成图片描述,增强Markdown文档的内容质量。

快速开始

MarkItDown的安装与使用非常简单,以下是入门指南。

安装

通过pip快速安装MarkItDown:

1
pip install markitdown

或者从源代码安装:

1
pip install -e .

使用示例

1. Python库使用

通过简单的API将文件转换为Markdown:

1
2
3
4
5
from markitdown import MarkItDown

markitdown = MarkItDown()
result = markitdown.convert("test.xlsx")
print(result.text_content)

2. 命令行工具

MarkItDown也可以作为命令行工具运行:

1
markitdown path-to-file.pdf > document.md

将Markdown内容保存到文件中:

1
markitdown path-to-file.pdf > output.md

也可以直接通过管道传输输入:

1
cat path-to-file.pdf | markitdown

AI增强功能

MarkItDown可以与大语言模型结合,自动生成图片描述。例如,使用OpenAI的GPT模型:

1
2
3
4
5
6
7
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使用

MarkItDown支持Docker运行,方便在任何环境中部署:

1
2
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

贡献与社区

MarkItDown欢迎社区贡献,开发者可以通过以下方式参与:

  1. 提交Issue:报告问题或提出新功能建议。

  2. Pull Request:贡献代码和优化文档。

  3. 运行测试:使用hatch工具进行测试:

    1
    2
    3
    pip install hatch
    hatch shell
    hatch test
  4. 代码规范:提交代码前运行预提交检查:

    1
    pre-commit run --all-files

MarkItDown遵循Microsoft Open Source Code of Conduct。如有疑问,可联系opencode@microsoft.com

总结

MarkItDown是一款功能强大的Markdown转换工具,支持多种文件格式,同时结合OCR、语音转录和AI增强功能,帮助开发者与文档创作者高效处理和管理内容。如果您正在寻找一个多功能Markdown工具,MarkItDown是您的理想选择。

立即访问MarkItDown GitHub仓库,体验高效的Markdown文档生成工具!