Document Loader - 문서 로더

Document Loader

Document Loader는 LangChain에서 다양한 형식(JSON,PDF,CSV,HTML,VIDEO,....)의 파일로부터 데이터를 로드하여 자연어 처리 또는 검색 기반 AI 애플리케이션에서 활용 할 수 있는 데이터(Embedding Vector)로 변환 하는 역할을 합니다.

Document Loader 동작방식

  1. 로드할 데이터의 형식에 맞는 Loader를 준비합니다.

    1. pdf파일에서 데이터를 가져오려면 PDFPlumberLoader

    2. URL에서 html페이지를 가져오려면 WebBaseLoader

    3. SQLDB에서 데이터를 가져오려면 SQLDatabaseLoader 등 종류에 맞춰서 준비

  2. 텍스트 전처리 및 변환

    1. 소스 문서에서 로드한 텍스트들 중 불필요한 태그, 띄어쓰기, 공백들을 제거한다.

    2. 텍스트가 아닌 형식의 파일(IMG, PDF 등)들을 텍스트 데이터로 변환한다.

Document Loader 실습

1) txt 파일 로드

from langchain_community.document_loaders import TextLoader

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

# 로드된 문서 확인
print(documents)

2) pdf 로드

from langchain_community.document_loaders import PyPDFLoader

# PDF 문서 로드
loader = PyPDFLoader("document.pdf")
documents = loader.load()

# 출력
print(documents[0].page_content)  # 첫 페이지 내용 출력

3) html 로드

from langchain_community.document_loaders import WebBaseLoader
import bs4

# 웹사이트 크롤링 후 텍스트 추출
loader = WebBaseLoader(web_paths=
                       ("https://khedu.co.kr/main/main.kh",) ,
                        bs_kwargs=dict(
                        parse_only=bs4.SoupStrainer( #크롤링할 태그, 클래스 등 설정 가능
                            ["section" , "div"]                          
                        )
                    ),
                    header_template={
                        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
                    },
                       )
loader.requests_kwargs = {"verify": False} # ssl인증 우회
documents = loader.load()

# 웹 페이지의 텍스트 출력
print(documents[0].page_content)

Last updated