MarkItDown完全指南:微软AI驱动的全能文档转换工具: 支持PDF、Office文档、图片、音频等多种格式转换,可集成OpenAI等AI模型实现智能描述

概述

文章来源

MarkItDown 是微软开源的一款强大的文档转换工具,可以将PDF、Office文档、图片等多种格式文件转换为Markdown格式。它还支持集成AI模型来智能处理图片描述。本文将详细介绍如何安装和使用这个工具。

主要特性

  • 支持多种文件格式转换:
    • PDF文件 (.pdf)
    • PowerPoint演示文稿 (.pptx)
    • Word文档 (.docx)
    • Excel表格 (.xlsx)
    • 图片(支持EXIF元数据和OCR)
    • 音频(支持EXIF元数据和语音转写)
    • HTML(支持维基百科等特殊处理)
    • 其他文本格式(csv、json、xml等)
  • 可集成OpenAI等AI模型实现智能描述
  • 简单易用的API接口
  • 支持批量处理文件

快速开始

1. 安装

使用pip安装:

pip install markitdown

或从源码安装:

pip install -e .

2. 依赖配置

在使用图片处理功能前,需要安装和配置以下依赖:

  1. ExifTool配置:

    • ExifTool官网下载ExifTool
    • 将ExifTool添加到系统环境变量中
    • ExifTool用于提取图片的元数据信息
  2. EasyOCR安装:

    • 使用pip安装: pip install -U easyocr
    • EasyOCR用于图片文字识别
  3. 多模态LLM配置:

    • 需要正确配置mlm_client才能使用AI模型进行图片描述
    • 支持OpenAI等多模态模型

注意:图片转换功能需要上述三个组件配合使用:

  • ExifTool负责提取元数据
  • EasyOCR负责OCR识别
  • 多模态LLM负责智能描述

3. 基本使用

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

Or use -o to specify the output file:

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

To use Document Intelligence conversion:

1
markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"

You can also pipe content:

1
cat path-to-file.pdf | markitdown

More information about how to set up an Azure Document Intelligence Resource can be found here

调用Python API最简单的使用方式:

1
2
3
4
5
6
7
8
from markitdown import MarkItDown

# 创建MarkItDown实例
markitdown = MarkItDown()

# 转换文件
result = markitdown.convert("test.xlsx")
print(result.text_content)

3. 使用AI模型处理图片

集成OpenAI来处理图片描述:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from markitdown import MarkItDown
from openai import OpenAI

# 配置OpenAI客户端
client = OpenAI()

# 创建支持AI的MarkItDown实例
md = MarkItDown(mlm_client=client, mlm_model="gpt-4")

# 转换图片文件
result = md.convert("example.jpg")
print(result.text_content)

环境变量配置

如果您使用OpenAI功能,需要设置API密钥:

export OPENAI_API_KEY=your_key

开发者指南

1. 运行测试

使用以下命令运行测试:

1
2
hatch shell
hatch test

2. 运行代码检查

pre-commit run --all-files

使用场景

  1. 文档索引和检索

    • 将各种格式的文档转换为Markdown便于建立索引
    • 支持全文搜索
  2. 内容分析

    • 提取文档结构和内容
    • 进行文本分析和处理
  3. AI增强处理

    • 使用AI模型生成图片描述
    • 智能识别文档内容
  4. 批量文档处理

    • 处理大量文档转换任务
    • 保持格式统一

相关资源