[LangChain] 랭체인 활용해 챗봇 만들기 - Document Loader

Jihan·2024년 10월 8일

Document Loader

Document loader 는 RAG를 구현할 때, 파이썬 외부 파일을 들고오는 모듈이다.
내부 패키지로는 WebBaseLoader, PyPdfLoader,

WebBaseLoader

웹페이지 url 내의 텍스트 컨텐츠를 들고 오는 역할을 한다.


# WebBaseLoader
from langchain.document_loaders import WebBaseLoader

urls = ['https://www.youtube.com/watch?v=tIU2tw3PMUE&list=PLQIgLu3Wf-q_Ne8vv-ZXuJ4mztHJaQb_v&index=5',
        'https://www.youtube.com/watch?v=tIU2tw3PMUE&list=PLQIgLu3Wf-q_Ne8vv-ZXuJ4mztHJaQb_v&index=5']
loader = WebBaseLoader(urls)

data = loader.load()
print(data[0].page_content)

PyPDFLoader

PyPDFLoader 를 사용하기 위해선 PyPDF 모듈이 필요하여 미리 설치한다.

!pip install pypdf

PyPDFLoader(path) 로 경로의 파일을 들고온 후 load_and_split() 함수로 페이지를 구분한다. 이 때, data는 list 형태로, 페이지 수는 list의 사이즈와 같다.

# PyPDFLoader
from langchain.document_loaders import PyPDFLoader

path='파일경로.pdf'
loader = PyPDFLoader(path)
data = loader.load_and_split()
print(data[0].page_content)

Docx2txtLoader

Docx2txtLoader 를 사용하기 위해선 Docx2txt 모듈이 필요하여 미리 설치한다.

!pip install docx2txt

Docx2txtLoader(path) 로 경로의 파일을 들고온 후 load_and_split() 함수로 페이지를 구분한다. 이 때, data는 list 형태로, 페이지 수는 list의 사이즈와 같다.


from langchain.document_loaders import Docx2txtLoader

path = '파일 경로.docx'
loader = Docx2txtLoader(path)
data = loader.load_and_split()
print(f"페이지 수 : {len(data)}")
print(data[0].page_content)
profile
공부하고 개발하고 할 수 있을 때 하고 싶은 거

0개의 댓글