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

概览

集成详情


加载器功能

设置

凭证

使用 PyPDFLoader 不需要任何凭证。 要启用模型调用的自动跟踪,请设置您的 LangSmith API 密钥:

安装

安装 langchain-communitypypdf

初始化

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

加载

延迟加载

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

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

加载 PDF 文件时,您可以通过两种不同的方式进行分割:
  • 按页面
  • 作为单个文本流
默认情况下,PyPDFLoader 将 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 中提取图像

处理文件

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

API 参考

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