Skip to main content
ZeroxPDFLoader 是一款利用 Zerox 库的文档加载器。Zerox 将 PDF 文档转换为图像,使用支持视觉的语言模型进行处理,并生成结构化的 Markdown 表示。该加载器支持异步操作,并提供页面级文档提取。

集成详情

本地支持可序列化JS 支持
ZeroxPDFLoaderlangchain_community

加载器功能

来源文档懒加载原生异步支持
ZeroxPDFLoader

安装

凭证

需要在环境变量中设置相应的凭证。该加载器支持多种不同的模型和模型提供商。请参阅下方 用法 部分查看几个示例,或参阅 Zerox 文档 获取完整的支持模型列表。

安装依赖

要使用 ZeroxPDFLoader,您需要安装 zerox 包,并确保已安装 langchain-community
pip install zerox langchain-community

初始化

ZeroxPDFLoader 通过将每页转换为图像并异步处理,使用支持视觉的语言模型实现 PDF 文本提取。要使用此加载器,您需要指定一个模型,并为 Zerox 配置必要的环境变量(如 API 密钥)。 如果在 Jupyter Notebook 等环境中工作,可能需要使用 nest_asyncio 处理异步代码,设置如下:
import nest_asyncio
nest_asyncio.apply()
import os

# 在 Jupyter Notebook 内部使用时需要 nest_asyncio
import nest_asyncio
from langchain_community.document_loaders.pdf import ZeroxPDFLoader

nest_asyncio.apply()

# 指定要处理的 PDF 的 URL 或文件路径
# 此处使用网络上的 PDF
file_path = "https://assets.ctfassets.net/f1df9zr7wr1a/soP1fjvG1Wu66HJhu3FBS/034d6ca48edb119ae77dec5ce01a8612/OpenAI_Sacra_Teardown.pdf"

# 设置视觉模型所需的环境变量
os.environ["OPENAI_API_KEY"] = (
    "zK3BAhQUmbwZNoHoOcscBwQdwi3oc3hzwJmbgdZ"  ## 您的 API 密钥
)

# 使用所需模型初始化 ZeroxPDFLoader
loader = ZeroxPDFLoader(file_path=file_path, model="azure/gpt-4.1-mini")

加载

# 加载文档并查看第一页:
documents = loader.load()
documents[0]
# 查看已解析的第一页内容
print(documents[0].page_content)

懒加载

加载器始终以懒加载方式获取结果。.load() 方法等效于 .lazy_load()

API 参考

ZeroxPDFLoader

该加载器类初始化时需要文件路径和模型类型,并支持通过 zerox_kwargs 传入 Zerox 特定参数进行自定义配置。 参数
  • file_path(Union[str, Path]):PDF 文件路径。
  • model(str):用于处理的支持视觉的模型,格式为 <provider>/<model>。有效值示例:
    • model = "gpt-4.1-mini" ## openai 模型
    • model = "azure/gpt-4.1-mini"
    • model = "gemini/gpt-4.1-mini"
    • model="claude-3-opus-20240229"
    • model = "vertex_ai/gemini-2.5-flash"
    • 更多详情请参阅 Zerox 文档
    • 默认为 "gpt-4.1-mini"
  • **zerox_kwargs(dict):Zerox 特定的额外参数,如 API 密钥、端点等。
方法
  • lazy_load:生成 Document 实例的迭代器,每个实例代表 PDF 的一页,附带包含页码和来源的元数据。
完整 API 文档请参阅此处

注意事项

  • 模型兼容性:Zerox 支持多种视觉模型。请参阅 Zerox GitHub 文档 获取支持的模型列表和配置详情。
  • 环境变量:请确保按照 Zerox 文档的说明设置所需的环境变量,如 API_KEY 或端点信息。
  • 异步处理:如果在 Jupyter Notebook 中遇到事件循环相关错误,可能需要如安装部分所示应用 nest_asyncio

故障排查

  • RuntimeError: This event loop is already running:使用 nest_asyncio.apply() 防止 Jupyter 等环境中的异步循环冲突。
  • 配置错误:验证 zerox_kwargs 是否与您所选模型的预期参数匹配,以及是否已设置所有必要的环境变量。

其他资源