PyMuPDF4LLM#

PyMuPDF4LLM 旨在让您更轻松地提取 LLMRAG 环境所需的格式的 PDF 内容。它支持 Markdown 提取以及 LlamaIndex 文档输出

重要提示

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

功能#

  • 支持多列页面

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

  • 支持页面分块输出。

  • 直接支持输出为 LlamaIndex 文档

功能特性#

  • 该软件包使用 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 文档,PyMuPDF4LLM 可以与 PyMuPDF Pro 无缝协作。假设您已经安装了 PyMuPDF Pro,您将能够按预期处理 Office 文档。

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

如您所见,PyMuPDF Pro 的功能将在 PyMuPDF4LLM 环境中可用!

API#

请参阅PyMuPDF4LLM API

更多资源#

示例代码#

博客#


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