LangChain 공식문서 Documet_loders 참고
LangChain의 Document Loaders는 텍스트 데이터를 다양한 소스(파일, 웹, 데이터베이스 등)에서 로드하여 Document 객체로 변환하는 역할을 합니다. 이 객체는 언어 모델이 처리할 수 있는 형식으로 텍스트와 메타데이터를 포함하고 있습니다.
LangChain은 다양한 형식의 데이터 소스를 지원하기 위해 여러 가지 Document Loader를 제공합니다. 주요한 Loader들은 다음과 같습니다:
CSVLoader
: CSV 파일 로드UnstructuredPDFLoader
: PDF 파일 로드TextLoader
: 일반 텍스트 파일 로드JSONLoader
: JSON 파일 로드PythonLoader
: Python 파일 로드MarkdownLoader
: Markdown 파일 로드WebBaseLoader
: 웹 페이지 로드SeleniumURLLoader
: JavaScript로 동적으로 생성된 웹 페이지 로드BSHTMLLoader
: HTML 파일 로드 (BeautifulSoup 사용)AirbyteLoader
: Airbyte 커넥터를 통한 데이터 로드NotionDBLoader
: Notion 데이터베이스 로드S3Loader
: AWS S3에서 파일 로드EmailLoader
: 이메일 로드DataFrameLoader
: Pandas DataFrame 로드CSV 파일을 로드하려면 CSVLoader
클래스를 사용합니다. 이 Loader는 CSV 파일의 각 행을 하나의 Document로 변환합니다.
pandas
라이브러리가 필요합니다. 설치되어 있지 않다면 다음과 같이 설치합니다:
pip install pandas
from langchain.document_loaders import CSVLoader
# CSV 파일 경로 설정
file_path = 'data.csv'
# CSVLoader 초기화
loader = CSVLoader(file_path=file_path)
# 문서 로드
documents = loader.load()
# 결과 확인
for doc in documents:
print(doc.page_content)
print(doc.metadata)
encoding
매개변수를 사용할 수 있습니다.PDF 파일을 로드하려면 UnstructuredPDFLoader
클래스를 사용합니다. 이 Loader는 PDF 파일의 텍스트를 추출하여 Document로 변환합니다.
unstructured
및 관련 패키지가 필요합니다. 다음과 같이 설치합니다:
pip install unstructured
pip install pdfminer.six # PDF 지원을 위해 필요
from langchain.document_loaders import UnstructuredPDFLoader
# PDF 파일 경로 설정
file_path = 'document.pdf'
# UnstructuredPDFLoader 초기화
loader = UnstructuredPDFLoader(file_path)
# 문서 로드
documents = loader.load()
# 결과 확인
for doc in documents:
print(doc.page_content)
print(doc.metadata)
pdfminer.six
이외에도 PyPDF2
등을 사용할 수 있지만, UnstructuredPDFLoader
는 unstructured
패키지를 기본으로 합니다.웹 페이지의 내용을 로드하려면 WebBaseLoader
클래스를 사용합니다. 이 Loader는 지정한 URL의 HTML 콘텐츠를 가져와서 텍스트를 추출합니다.
requests
beautifulsoup4
다음과 같이 설치합니다:
pip install requests
pip install beautifulsoup4
from langchain.document_loaders import WebBaseLoader
# 대상 URL 설정
url = 'https://example.com'
# WebBaseLoader 초기화
loader = WebBaseLoader(url)
# 문서 로드
documents = loader.load()
# 결과 확인
for doc in documents:
print(doc.page_content)
print(doc.metadata)
SeleniumURLLoader
를 사용할 수 있습니다.다음에는 URL 데이터 로드(크롤링)에 대해서 자세히 알아보겠다....