본문 바로가기
Data & Research

[LLM & RAG] Langchain 기초 - 데이터 로드

by 물박사의 저장공간 2025. 4. 1.

Documents_loaders

langchain_community.document_loaders는 다양한 소스(텍스트 파일, PDF, 웹 페이지, 데이터베이스 등)에서 문서를 불러오는 기능을 제공합니다. 이 모듈은 RAG(Retrieval-Augmented Generation) 파이프라인에서 Indexing 단계에서 사용되며, 외부 문서를 벡터 저장소에 넣기 위해 필요합니다.

 

파일 기반 로더

  • TextLoader → 일반 텍스트 파일(.txt) 로드
  • CSVLoader → CSV 파일(.csv) 로드
  • PDFPlumberLoader, PyMuPDFLoader, PDFMinerLoader → PDF 문서 로드
  • Docx2txtLoader → MS Word 파일(.docx) 로드
  • UnstructuredXMLLoader → XML 문서 로드

웹 및 API 기반 로더

  • WebBaseLoader → 웹사이트 HTML 페이지 로드
  • SitemapLoader → 웹사이트의 사이트맵을 분석하여 여러 페이지 로드
  • WikipediaLoader → 위키백과 문서 로드

데이터베이스 및 클라우드 로더

  • MongoDBLoader → MongoDB에서 데이터 로드
  • BigQueryLoader → Google BigQuery에서 데이터 로드

 

1) 텍스트 파일 로드

from langchain_community.document_loaders import TextLoader

# 텍스트 파일 로드
loader = TextLoader("example.txt")
docs = loader.load()

# 로드된 문서 출력
for doc in docs:
    print(doc.page_content)

 

2) PDF파일 로드

from langchain_community.document_loaders import PyMuPDFLoader

# PDF 파일 로드
loader = PyMuPDFLoader("example.pdf")
docs = loader.load()

# 첫 번째 페이지 출력
print(docs[0].page_content)

 

3) 웹사이트 크롤링 데이터 로드

from langchain_community.document_loaders import WebBaseLoader

# 특정 웹사이트에서 문서 가져오기
loader = WebBaseLoader("https://en.wikipedia.org/wiki/Natural_language_processing")
docs = loader.load()

# 크롤링한 데이터 출력
print(docs[0].page_content[:500])  # 첫 500자만 출력

 

4) CSV파일 로드

from langchain_community.document_loaders import CSVLoader

# CSV 파일 로드
loader = CSVLoader("data.csv")
docs = loader.load()

# 첫 번째 데이터 출력
print(docs[0].page_content)

 

디렉토리를 한꺼번에 로드할 경우에는 DirectoryLoader를 사용할 수 있습니다. 

from langchain_community.document_loaders import DirectoryLoader

loader = DirectoryLoader('../dataset/llm_data', glob="*", show_progress=True)
docs = loader.load()

 

glob argument를 통해서 데이터를 필터링해서 가져올 수도 있습니다. (현재는 모든 데이터로 설정)

'Data & Research' 카테고리의 다른 글

[LLM & RAG] Langchain 기초 - Embedding/저장  (0) 2025.04.01
[LLM & RAG] Langchain 기초 - Splitter  (0) 2025.04.01
[LLM & RAG] RAG Procedure  (0) 2025.04.01
[LLM & RAG] Vector Database  (0) 2025.04.01
[ML & DL 기초] Table of Contents  (1) 2025.03.15