| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- system
- instruction
- AI
- html
- github
- Pipelining
- control
- Linux
- Java
- data structure
- php
- DS
- mysql
- openai
- web
- CSS
- function
- javascript
- Rag
- DB
- XML
- Algorithm
- for
- architecture
- react
- python
- DATAPATH
- computer
- MIPS
- Class
- Today
- Total
YYYEJI
[MAC] RAG 기술 사용할 때 웹 문서(WebBaseLoader), CSV(CSVLoader), PDF 파일(PyPDFLoader) 로더하는 방법 본문
[MAC] RAG 기술 사용할 때 웹 문서(WebBaseLoader), CSV(CSVLoader), PDF 파일(PyPDFLoader) 로더하는 방법
YEJI ⍢ 2025. 8. 4. 14:35↓↓↓ RAG 기본 개념 관련해서 살펴보기 ↓↓↓
RAG 개념 알아보기
RAG란 무엇일까요??Retrieval-Augmented Geteration의 줄임말이며,LLM의 한계를 보완하기 위해 외부 지식 베이스에서 정보를 검색(Retrieval)해서 그 정보를 바탕으로 텍스트를 생성(Generation)하는 방식입니다!
yyyeji.tistory.com

검색기를 할 때 사용할 문서가 여러가지가 있어요!!
1) PDF 파일 로더
2) 웹 페이지 로더
3) CSV 데이터 로더
4) 디렉토리 로더
5) HTML 데이터 로더
6) JSON 데이터 로더
7) Markdown 데이터 로더
8) Microsoft Office 데이터 로더
개념을 알아봤으면 코드로 바로 가볼까요 💨
웹 문서 로더
from langchain_community.document_loaders import WebBaseLoader # 웹 텍스트만 불러오기 (크롤링보단 낮음)
# 기본적인 텍스트 추출
web_loader = WebBaseLoader(
web_path = [
"https://python.langchain.com/",
"https://js.langchain.com/"
]
)
# 동기 로딩
web_docs = web_loader.load()
# 불러온 문서의 개수 출력
len(web_docs)
WebBaseLoader()는 웹사이트에서 HTML을 가져와 본문 텍스트만 추출하는 도구입니다!
<body> 안의 텍스트만 가져와 구조화된 텍스트 위주로 수집한다고 해요!
함수 안에 web_path는 수집할 웹 URL 리스트이며,
.load()가 LangChain 문서 객체 리스트로 반환합니다.
이 문서들을 Embedding하고 Vector DB에 저장하면 RAG에 활용할 수 있습니다!!
web_docs[0].page_content
web_docs[0].metadata

page_content나 metadata를 통해 내용과 메타데이터를 확인할 수 있습니다!
CSV 파일 로더
from langchain_community.document_loaders.csv_loader import CSVLoader
# 기본 파일 로드
csv_loader = CSVLoader("/content/titanic.csv")
csv_docs = csv_loader.load()
print("문서의 수: ", len(csv_docs))
print("-" * 100)
print("처음 문서의 메타데이터: ", csv_docs[0].metadata)
print("-" * 100)
print("처음 문서의 내용 :", csv_docs[0].page_content)

CSVLoader() 함수 안에 로드할 CSV 파일 경로를 넣습니다.
.load()는 각 행(row)을 하나의 문서로 파싱해서 리스트로 반환하게 됩니다.!!
PDF 파일 로더
from langchain_community.document_loaders import PyPDFLoader
# PDF 로더 초기화
pdf_loader = PyPDFLoader("/content/A.pdf")
# 동기 로딩
pdf_docs = pdf_loader.load()
print("문서의 수 :", len(pdf_docs))
print("-" * 100)
print("처음 문서의 메타데이터 :", pdf_docs[0].metadata)

PyPDFLoader() 함수 안에 분석할 PDF 파일 경로를 지정합니다!
.load()는 PDF 파일을 페이지 단위로 분할하여 각각 Document 객체로 반환합니다..!!
pdf_docs는 각 페이지의 텍스트 내용과 메타데이터를 담고 있는 리스트 형태입니다.
다음은 텍스트 분활하는 방법으로 고고고~

'인공지능 챗봇' 카테고리의 다른 글
| [MAC] 문서 임베딩(Document Embedding) 코드 파해치기 (6) | 2025.08.05 |
|---|---|
| [MAC] 데이터 로더 후 텍스트 분할(Text Splitting) 하는 과정 (7) | 2025.08.05 |
| [MAC] LangChain 주요 컴포넌트 파해치기 (16) | 2025.08.01 |
| [MAC] OpenAI를 통해 이미지 분석해보기 (6) | 2025.07.31 |
| [MAC] OpenAI로 텍스트 답변 생성하기 (8) | 2025.07.31 |