微软开源MarkItDown:Office文档轻松转Markdown,让大模型更懂Office

开发 前端
在 RAG(Retrieval-Augmented Generation)系统的构建中,MarkItDown 作为初始数据的转换工具,已经为构建更智能的数据处理与生成系统提供了巨大的帮助。随着功能的不断完善,MarkItDown 将成为更多开发者实现文档格式转换的利器。

最近,Microsoft 的 MarkItDown 库在 GitHub 上引起了广泛关注,短短时间内就获得了超过 20000 个星标。MarkItDown 是一个功能强大的 Python 库,能够将多种常见的文件格式(如 PDF、PowerPoint、Word、Excel、图像、音频和 HTML 等)转换为 Markdown 格式,

图片图片

MarkItDown 的优势与特点

相较于市面上其他的文件转换工具(比如 Unstructured、Marker),MarkItDown 在转换效果方面表现出色。尤其在处理 Office 格式的文档时,它能够准确地保留文档的核心内容和格式,并且以简洁的 Markdown 语法呈现,让大模型更好的理解已有语料,这使得它在当前的大模型浪潮中展现出巨大的潜力和广泛的关注。

下面,我们将展示如何通过 MarkItDown 将 Excel 文件转换为 Markdown 格式的简单示例。

首先,安装 MarkItDown 库:

pip install markitdown

然后,使用以下代码进行转换:

from markitdown import MarkItDown
# 初始化 MarkItDown 对象
markitdown = MarkItDown()
# 转换 Excel 文件为 Markdown 格式
result = markitdown.convert("test.xlsx")
# 打印转换后的 Markdown 内容
print(result.text_content)

这样,我们就能够轻松将 Excel 文档转换为 Markdown 格式。

不过,由于 MarkItDown 是 Python 工具包,直接在其他编程语言中使用并不十分方便。因此,笔者基于 MarkItDown 封装了一个 REST API 服务,并增强支持PDF转换成markdown,其他语言的开发者也可以通过这个服务轻松调用,实现跨语言使用。(PS: 感谢 Cursor 工具,使我这个 Python 门外汉也能根据自己的需求,轻松构建出符合要求的 AI 基础设施。)

通过 REST API 使用 MarkItDown

  • 运行 Docker 容器

首先,你需要启动 MarkItDown 的 Docker 服务:

docker run -p 8000:8000 pig4cloud/markitdown
  • 通过 REST API 调试

启动服务后,你可以通过 curl 命令测试 API 接口,上传 Word 文件进行转换:

curl -X 'POST' \
 'http://localhost:8000/upload/' \
 -H 'Content-Type: multipart/form-data' \
 -F 'file=@test.docx'

 API 返回的结果是转换后的 Markdown 格式文本:

{
"text": "\n## 核心技术栈升级\n\nSpring 官方已于 2023 年底宣布停止维护 JDK 8 和 Spring Boot 2 系列框架,业务系统仍使用已停止维护的 Spring Boot 2.x 和 JDK 8,存在大量安全漏洞(尤其近期高发),影响系统安全性与可扩展性。\n\n![](data:image/png;base64...)\n\n**优化必要性**:\n\n 及时修复安全漏洞,避免业务数据泄露与恶意攻击风险。\n\n 提高系统兼容性,适应未来技术生态与业务需求。\n\n**优化方向:**\n\n 全面升级到 Spring Boot 3.x 和 JDK 17 LTS,采用最新技术栈,提升性能与安全性。\n\n 调研现有项目中间件的兼容性问题,评估升级改造成本并规划实施路径。\n\n 调用现有 DevOps 流水线,重构 JDK17 LTS 实现一键构建与自动化部署,提高开发效率。"
}

返回的 Markdown 格式文本可以直接嵌入到 Markdown 文档中,或者通过其他工具进行 ETL 进一步处理。

进阶使用:结合视觉模型提升转换效果

MarkItDown 不仅仅支持传统的文档格式,还能与大模型进行集成,提升图像和复杂文档的解析能力。例如,借助视觉模型,MarkItDown 能够处理复杂的图像内容,将图片中的信息提取并转换为 Markdown 格式。

为了使用视觉模型,你可以通过如下命令启动服务:

docker run -d \
 -p 8000:8000 \
 -e API_KEY=gitee_ai_key \
 -e MODEL=InternVL2_5-26B \
 -e BASE_URL=https://ai.gitee.com/v1 \
 pig4cloud/markitdown

Gitee AI 提供的 InternVL2_5-26B 视觉模型,来提升中文图像和文档内容的解析能力。当然你可以使用 qwen-vl 也可以根据需要使用本地的视觉模型,如 ollama run minicpm-v:8b,以满足个性化的需求。

此外,还可以通过 Swagger 接口来调试 API,访问地址为:http://0.0.0.0:9527/swagger-ui.html

图片图片

总结与展望

尽管 MarkItDown 已经在多个文件格式的转换上取得了显著进展,

  • 但目前它对旧版 Office 文档(如.doc、.xls)以及 PDF 影印版的支持仍然有限(本增强工程已支持)。
  • 对于复杂格式的报表,MarkItDown 的抽取效果可能不如预期,尤其是在处理非结构化数据时,文本转换效果较为简单。

然而,在 RAG(Retrieval-Augmented Generation)系统的构建中,MarkItDown 作为初始数据的转换工具,已经为构建更智能的数据处理与生成系统提供了巨大的帮助。随着功能的不断完善,MarkItDown 将成为更多开发者实现文档格式转换的利器。

如果你对 AI 开发或者数据处理有兴趣,不妨尝试一下 MarkItDown,特别是在结合大语言模型的环境下,它的潜力无可限量。

责任编辑:武晓燕 来源: JAVA架构日记
相关推荐

2012-07-20 12:29:47

Office 15微软

2013-01-29 14:29:44

Office 2013Office 365

2013-01-30 15:22:13

Office 365

2009-10-10 16:20:48

Office套件Google Docs

2010-03-08 15:04:29

Office 2010微软

2022-05-24 09:57:32

微软开源AI 驱动

2010-01-06 09:43:43

微软Office 2010

2013-08-01 09:48:58

微软Office 365

2012-08-21 17:02:19

Office 2013触摸

2010-10-14 09:35:07

Office for

2010-02-26 13:37:48

ExchangeOffice

2012-07-17 14:36:59

微软Office2013

2012-07-17 14:06:26

微软Office 2013

2022-01-18 22:54:09

ExcelMacOffice

2012-07-17 09:41:20

微软谷歌Office

2021-03-08 05:52:16

微软Office新版 Office

2018-05-23 09:03:36

2021-02-20 21:06:19

微软Edge浏览器

2021-07-02 05:27:31

iOS PDFOffice 应用

2023-03-03 13:06:34

大脑分层预测
点赞
收藏

51CTO技术栈公众号