Skip to main content
本笔记本提供了快速入门 PyMuPDF 文档加载器 的概览。有关所有 __ModuleName__Loader 功能和配置的详细文档,请访问 API 参考

概述

集成详情


加载器功能

设置

凭证

使用 PyMuPDFLoader 不需要任何凭证。 如果您想获得模型调用的自动化一流跟踪,也可以取消注释以下内容来设置您的 LangSmith API 密钥:

安装

安装 langchain-communitypymupdf

初始化

现在我们可以实例化模型对象并加载文档:

加载

延迟加载

元数据属性至少包含以下键:
  • source
  • page(如果在 page 模式下)
  • total_page
  • creationdate
  • creator
  • producer
其他元数据特定于每个解析器。 这些信息可能很有用(例如,用于对您的 PDF 进行分类)。

分割模式与自定义页面分隔符

加载 PDF 文件时,您可以通过两种不同的方式进行分割:
  • 按页面
  • 作为单个文本流
默认情况下,PyMuPDFLoader 将按页面分割 PDF。

按页面提取 PDF。每一页都被提取为一个 langchain 文档对象

在此模式下,PDF 按页面分割,生成的文档元数据包含页码。但在某些情况下,我们可能希望将 PDF 作为单个文本流处理(这样就不会将某些段落一分为二)。在这种情况下,您可以使用 single 模式:

将整个 PDF 提取为单个 langchain 文档对象

逻辑上,在此模式下,‘page_number’ 元数据会消失。以下是如何在文本流中清晰标识页面结束位置的方法:

添加自定义 pages_delimiter 以在 single 模式下标识页面结束位置

这可以是简单的 \n 或 \f 以清晰指示页面更改,或者使用 <!— PAGE BREAK —> 以便在 Markdown 查看器中无缝注入而没有视觉效果。

从 PDF 中提取图像

您可以从 PDF 中提取图像,有三种不同的解决方案可供选择:
  • rapidOCR(轻量级光学字符识别工具)
  • Tesseract(高精度 OCR 工具)
  • 多模态语言模型
您可以调整这些函数,以在 htmlmarkdowntext 之间选择提取图像的输出格式。 结果插入在页面文本的最后和倒数第二段之间。

使用 rapidOCR 从 PDF 中提取图像

请注意,RapidOCR 设计用于处理中文和英文,不支持其他语言。

使用 tesseract 从 PDF 中提取图像

使用多模态模型从 PDF 中提取图像

从 PDF 中提取表格

使用 PyMUPDF,您可以以 htmlmarkdowncsv 格式从 PDF 中提取表格:

处理文件

许多文档加载器涉及解析文件。此类加载器之间的差异通常源于文件的解析方式,而不是文件的加载方式。例如,您可以使用 open 读取 PDF 或 markdown 文件的二进制内容,但需要不同的解析逻辑将该二进制数据转换为文本。 因此,将解析逻辑与加载逻辑解耦会很有帮助,这样无论数据如何加载,都可以更轻松地重用给定的解析器。 您可以使用此策略,使用相同的解析参数分析不同的文件。
可以处理来自云存储的文件。

API 参考

有关所有 PyMuPDFLoader 功能和配置的详细文档,请访问 API 参考:API 参考