Skip to main content
ZeroxPDFLoaderZerox 라이브러리를 활용하는 문서 로더입니다. Zerox는 PDF 문서를 이미지로 변환하고 비전 기능이 있는 언어 모델을 사용하여 처리한 다음 구조화된 Markdown 표현을 생성합니다. 이 로더는 비동기 작업을 허용하고 페이지 수준 문서 추출을 제공합니다.

통합 세부 정보

클래스패키지로컬직렬화 가능JS 지원
ZeroxPDFLoaderlangchain_community

로더 기능

소스문서 지연 로딩네이티브 비동기 지원
ZeroxPDFLoader

설정

자격 증명

환경 변수에 적절한 자격 증명을 설정해야 합니다. 로더는 다양한 모델 및 모델 공급자를 지원합니다. 몇 가지 예제를 보려면 아래의 사용법 헤더를 참조하거나 지원되는 모델의 전체 목록을 보려면 Zerox 문서를 참조하세요.

설치

ZeroxPDFLoader를 사용하려면 zerox 패키지를 설치해야 합니다. langchain-community도 설치되어 있는지 확인하세요.
pip install zerox langchain-community

초기화

ZeroxPDFLoader는 각 페이지를 이미지로 변환하고 비동기적으로 처리하여 비전 기능이 있는 언어 모델을 사용한 PDF 텍스트 추출을 가능하게 합니다. 이 로더를 사용하려면 모델을 지정하고 API 키와 같은 Zerox에 필요한 환경 변수를 구성해야 합니다. Jupyter Notebook과 같은 환경에서 작업하는 경우 nest_asyncio를 사용하여 비동기 코드를 처리해야 할 수 있습니다. 다음과 같이 설정할 수 있습니다:
import nest_asyncio
nest_asyncio.apply()
import os

# nest_asyncio 사용 (jupyter notebook 내부에서만 필요)
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"  ## your-api-key
)

# 원하는 모델로 ZeroxPDFLoader 초기화
loader = ZeroxPDFLoader(file_path=file_path, model="azure/gpt-4o-mini")

로드

# 문서를 로드하고 첫 페이지를 확인합니다:
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...')
# 파싱된 첫 페이지를 확인합니다
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
...

지연 로드

로더는 항상 결과를 지연 로딩합니다. .load() 메서드는 .lazy_load()와 동등합니다

API 레퍼런스

ZeroxPDFLoader

이 로더 클래스는 파일 경로와 모델 유형으로 초기화되며 Zerox 관련 매개변수를 처리하기 위한 zerox_kwargs를 통한 사용자 정의 구성을 지원합니다. 인수:
  • file_path (Union[str, Path]): PDF 파일 경로.
  • model (str): <provider>/<model> 형식으로 처리에 사용할 비전 기능이 있는 모델. 유효한 값의 몇 가지 예:
    • model = "gpt-4o-mini" ## openai model
    • 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): API 키, 엔드포인트 등과 같은 추가 Zerox 관련 매개변수.
메서드:
  • lazy_load: 각 페이지 번호 및 소스를 포함한 메타데이터와 함께 PDF의 각 페이지를 나타내는 Document 인스턴스의 반복자를 생성합니다.
전체 API 문서는 여기를 참조하세요

참고

  • 모델 호환성: Zerox는 다양한 비전 기능이 있는 모델을 지원합니다. 지원되는 모델 목록 및 구성 세부 정보는 Zerox의 GitHub 문서를 참조하세요.
  • 환경 변수: Zerox 문서에 지정된 대로 API_KEY 또는 엔드포인트 세부 정보와 같은 필수 환경 변수를 설정해야 합니다.
  • 비동기 처리: Jupyter Notebook에서 이벤트 루프와 관련된 오류가 발생하면 설정 섹션에 표시된 대로 nest_asyncio를 적용해야 할 수 있습니다.

문제 해결

  • RuntimeError: This event loop is already running: Jupyter와 같은 환경에서 비동기 루프 충돌을 방지하려면 nest_asyncio.apply()를 사용하세요.
  • 구성 오류: zerox_kwargs가 선택한 모델에 대해 예상되는 인수와 일치하고 필요한 모든 환경 변수가 설정되어 있는지 확인하세요.

추가 리소스


Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I