PyMuPDF4LLM#

PyMuPDF4LLM 旨在使提取 PDF 内容以满足您的 LLMRAG 环境需要变得更容易。它支持 Markdown 提取LlamaIndex 文档输出

重要

您可以扩展支持的文件类型,以包括Office文档格式(DOC/DOCX、XLS/XLSX、PPT/PPTX、HWP/HWPX),通过 使用 PyMuPDF Pro 与 PyMuPDF4LLM

特征#

  • 对多列页面的支持

  • 支持图像和矢量图形的提取(以及在MD文本中包含引用)

  • 支持页面分块输出。

  • 直接支持以 LlamaIndex Documents 作为输出。

功能#

  • 该软件包使用 PyMuPDF 将文件的页面转换为 Markdown 格式的文本。

  • 标准文本和表格被检测到,按照正确的阅读顺序引入,然后一起转换为 GitHub -兼容的 Markdown 文本。

  • 标题行通过字体大小进行识别,并适当地使用一个或多个 # 标签进行前缀。

  • 粗体、斜体、等宽文本和代码块被检测并相应格式化。类似的规则适用于有序和无序列表。

  • 默认情况下,所有文档页面都会被处理。如果需要,可以通过提供一个基于0的页面编号列表来指定页面的子集。

安装#

通过 pip 安装该包:

pip install pymupdf4llm

将文件提取为 Markdown#

要以Markdown格式检索您的文档内容,只需安装该软件包,然后使用几行Python代码即可获得结果。

然后在你的 Python 脚本中这样做:

import pymupdf4llm
md_text = pymupdf4llm.to_markdown("input.pdf")

注意

可以提供一个PyMuPDF Document,而不是上面的文件名字符串。第二个参数可以是一个基于0的页面编号列表,例如[0,1]将仅选择文档的第一页和第二页。

如果您想存储您的 Markdown 文件,例如以 UTF8 编码的文件存储,您可以执行:

import pathlib
pathlib.Path("output.md").write_bytes(md_text.encode())

作为LlamaIndex文档提取文件#

PyMuPDF4LLM 支持直接转换为 LLamaIndex 文档。文档首先转换为 Markdown 格式,然后返回一个 LlamaIndex 文档,具体如下:

import pymupdf4llm
llama_reader = pymupdf4llm.LlamaMarkdownReader()
llama_docs = llama_reader.load_data("input.pdf")

PyMuPDF Pro 一起使用#

对于Office文档支持,PyMuPDF4LLMPyMuPDF Pro无缝协作。假设您已安装PyMuPDF Pro,您将能够按预期处理Office文档:

import pymupdf4llm
import pymupdf.pro
pymupdf.pro.unlock()
md_text = pymupdf4llm.to_markdown("sample.doc")

正如您所看到的,PyMuPDF Pro 的功能将在 PyMuPDF4LLM 的上下文中可用!

接口#

the PyMuPDF4LLM API

进一步的资源#

示例代码#

博客#


本软件按原样提供,不作任何明示或暗示的担保。该软件根据许可证分发,除非按照该许可证的条款明确授权,否则不得复制、修改或分发。有关许可信息,请参阅artifex.com或联系Artifex Software Inc.,地址:39 Mesa Street, Suite 108A, San Francisco CA 94129, United States以获取更多信息。