ZeroxPDFLoader
概述
ZeroxPDFLoader
是一个文档加载器,它利用了 Zerox 库。Zerox 将 PDF 文档转换为图像,使用具有视觉功能的语言模型处理它们,并生成结构化的 Markdown 表示。此加载器允许异步操作,并提供页面级别的文档提取。
集成详情
类 | 包 | 本地 | 可序列化 | JS 支持 |
---|---|---|---|---|
ZeroxPDFLoader | langchain_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
# use nest_asyncio (only necessary inside of jupyter notebook)
import nest_asyncio
from langchain_community.document_loaders.pdf import ZeroxPDFLoader
nest_asyncio.apply()
# Specify the url or file path for the PDF you want to process
# In this case let's use pdf from web
file_path = "https://assets.ctfassets.net/f1df9zr7wr1a/soP1fjvG1Wu66HJhu3FBS/034d6ca48edb119ae77dec5ce01a8612/OpenAI_Sacra_Teardown.pdf"
# Set up necessary env vars for a vision model
os.environ["OPENAI_API_KEY"] = (
"zK3BAhQUmbwZNoHoOcscBwQdwi3oc3hzwJmbgdZ" ## your-api-key
)
# Initialize ZeroxPDFLoader with the desired model
loader = ZeroxPDFLoader(file_path=file_path, model="azure/gpt-4o-mini")
API 参考:ZeroxPDFLoader
加载
# Load the document and look at the first page:
documents = loader.load()
documents[0]
Document(metadata={'source': 'https://assets.ctfassets.net/f1df9zr7wr1a/soP1fjvG1Wu66HJhu3FBS/034d6ca48edb119ae77dec5ce01a8612/OpenAI_Sacra_Teardown.pdf', 'page': 1, 'num_pages': 5}, page_content='# OpenAI\n\nOpenAI is an AI research laboratory.\n\n#ai-models #ai\n\n## Revenue\n- **$1,000,000,000** \n 2023\n\n## Valuation\n- **$28,000,000,000** \n 2023\n\n## Growth Rate (Y/Y)\n- **400%** \n 2023\n\n## Funding\n- **$11,300,000,000** \n 2023\n\n---\n\n## Details\n- **Headquarters:** San Francisco, CA\n- **CEO:** Sam Altman\n\n[Visit Website](#)\n\n---\n\n## Revenue\n### ARR ($M) | Growth\n--- | ---\n$1000M | 456%\n$750M | \n$500M | \n$250M | $36M\n$0 | $200M\n\nis on track to hit $1B in annual recurring revenue by the end of 2023, up about 400% from an estimated $200M at the end of 2022.\n\nOpenAI overall lost about $540M last year while developing ChatGPT, and those losses are expected to increase dramatically in 2023 with the growth in popularity of their consumer tools, with CEO Sam Altman remarking that OpenAI is likely to be "the most capital-intensive startup in Silicon Valley history."\n\nThe reason for that is operating ChatGPT is massively expensive. One analysis of ChatGPT put the running cost at about $700,000 per day taking into account the underlying costs of GPU hours and hardware. That amount—derived from the 175 billion parameter-large architecture of GPT-3—would be even higher with the 100 trillion parameters of GPT-4.\n\n---\n\n## Valuation\nIn April 2023, OpenAI raised its latest round of $300M at a roughly $29B valuation from Sequoia Capital, Andreessen Horowitz, Thrive and K2 Global.\n\nAssuming OpenAI was at roughly $300M in ARR at the time, that would have given them a 96x forward revenue multiple.\n\n---\n\n## Product\n\n### ChatGPT\n| Examples | Capabilities | Limitations |\n|---------------------------------|-------------------------------------|------------------------------------|\n| "Explain quantum computing in simple terms" | "Remember what users said earlier in the conversation" | May occasionally generate incorrect information |\n| "What can you give me for my dad\'s birthday?" | "Allows users to follow-up questions" | Limited knowledge of world events after 2021 |\n| "How do I make an HTTP request in JavaScript?" | "Trained to provide harmless requests" | |')
# Let's look at parsed first page
print(documents[0].page_content)
# OpenAI
OpenAI is an AI research laboratory.
#ai-models #ai
## Revenue
- **$1,000,000,000**
2023
## Valuation
- **$28,000,000,000**
2023
## Growth Rate (Y/Y)
- **400%**
2023
## Funding
- **$11,300,000,000**
2023
---
## Details
- **Headquarters:** San Francisco, CA
- **CEO:** Sam Altman
[Visit Website](#)
---
## Revenue
### ARR ($M) | Growth
--- | ---
$1000M | 456%
$750M |
$500M |
$250M | $36M
$0 | $200M
is on track to hit $1B in annual recurring revenue by the end of 2023, up about 400% from an estimated $200M at the end of 2022.
OpenAI overall lost about $540M last year while developing ChatGPT, and those losses are expected to increase dramatically in 2023 with the growth in popularity of their consumer tools, with CEO Sam Altman remarking that OpenAI is likely to be "the most capital-intensive startup in Silicon Valley history."
The reason for that is operating ChatGPT is massively expensive. One analysis of ChatGPT put the running cost at about $700,000 per day taking into account the underlying costs of GPU hours and hardware. That amount—derived from the 175 billion parameter-large architecture of GPT-3—would be even higher with the 100 trillion parameters of GPT-4.
---
## Valuation
In April 2023, OpenAI raised its latest round of $300M at a roughly $29B valuation from Sequoia Capital, Andreessen Horowitz, Thrive and K2 Global.
Assuming OpenAI was at roughly $300M in ARR at the time, that would have given them a 96x forward revenue multiple.
---
## Product
### ChatGPT
| Examples | Capabilities | Limitations |
|---------------------------------|-------------------------------------|------------------------------------|
| "Explain quantum computing in simple terms" | "Remember what users said earlier in the conversation" | May occasionally generate incorrect information |
| "What can you give me for my dad's birthday?" | "Allows users to follow-up questions" | Limited knowledge of world events after 2021 |
| "How do I make an HTTP request in JavaScript?" | "Trained to provide harmless requests" | |
惰性加载
加载器始终以惰性方式获取结果。.load()
方法等效于 .lazy_load()
API 参考
ZeroxPDFLoader
此加载器类使用文件路径和模型类型进行初始化,并支持通过 zerox_kwargs
进行自定义配置,以处理 Zerox 特定的参数。
参数:
file_path
(Union[str, Path]):PDF 文件的路径。model
(str):用于处理的具有视觉功能的模型,格式为<提供商>/<模型>
。一些有效值的示例是model = "gpt-4o-mini" ## openai 模型
model = "azure/gpt-4o-mini"
model = "gemini/gpt-4o-mini"
model="claude-3-opus-20240229"
model = "vertex_ai/gemini-1.5-flash-001"
- 有关更多详细信息,请参阅 Zerox 文档
- 默认为
"gpt-4o-mini"
。
**zerox_kwargs
(dict):其他 Zerox 特定的参数,例如 API 密钥、端点等。- 请参阅 Zerox 文档
方法:
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
是否与您选择的模型的预期参数匹配,并且是否已设置所有必要的环境变量。
其他资源
- Zerox 文档: Zerox GitHub 仓库
- LangChain 文档加载器: LangChain 文档