Arxiv

문서 로더

다양한 형식의 문서를 LangChain으로 로드하는 방법을 다룬다.

AI
RAG
LangChain
저자

Kwangmin Kim

공개

2024년 12월 31일

arXiv은 물리학, 수학, 컴퓨터 과학, 정량 생물학, 정량 금융, 통계, 전기공학 및 시스템 과학, 경제학 분야의 200만 편의 학술 논문을 위한 오픈 액세스 아카이브입니다.

API 도큐먼트

Arxiv 문서 로더에 접근하려면 arxiv, PyMuPDFlangchain-community 통합 패키지를 설치해야 합니다.

PyMuPDF 는 arxiv.org 사이트에서 다운로드한 PDF 파일을 텍스트 형식으로 변환합니다.

# 설치
# !pip install -qU langchain-community arxiv pymupdf

1 객체 생성

이제 model 객체를 인스턴스화하고 문서를 로드할 수 있다:

from langchain_community.document_loaders import ArxivLoader

# Query 에 검색하고자 하는 논문의 주제를 입력합니다.
loader = ArxivLoader(
    query="Chain of thought",
    load_max_docs=2,  # 최대 문서 수
    load_all_available_meta=True,  # 메타데이터 전체 로드 여부
)
# 문서 로드 결과출력
docs = loader.load()
docs
# 문서 메타데이터 출력
docs[0].metadata

load_all_available_meta=False 인 경우 메타데이터는 전체가 아닌 일부만 출력됩니다.

# Query 에 검색하고자 하는 논문의 주제를 입력합니다.
loader = ArxivLoader(
    query="ChatGPT",
    load_max_docs=2,  # 최대 문서 수
    load_all_available_meta=False,  # 메타데이터 전체 로드 여부
)

# 문서 로드 결과출력
docs = loader.load()

# 문서 메타데이터 출력
docs[0].metadata

2 요약(summary)

  • 논문의 전체 내용이 아닌 요약본을 출력하고자 한다면, get_summaries_as_docs() 함수를 호출하면 됩니다.
# 문서 요약 로딩
docs = loader.get_summaries_as_docs()

# 첫 번째 문서 접근
print(docs[0].page_content)

3 lazy_load()

문서를 대량으로 로드할 때 모든 로드된 문서의 부분 집합에 대해 하류 작업을 수행할 수 있다면, 메모리 사용량을 최소화하기 위해 문서를 한 번에 하나씩 지연 로드할 수 있습니다.

docs = []

# 문서 지연 로드
for doc in loader.lazy_load():
    docs.append(doc)
# 결과 출력
docs

Subscribe

Enjoy this blog? Get notified of new posts by email: