RAG2026-5일8차시 · 첫 번째 RAG 실습8 / 19← 이전목차다음 →MetaContents

8차시. 첫 번째 RAG 실습

5. 실습 ① — 인덱싱 만들기

출처: 원본 PDF 08차시_첫번째RAG실습.pdf 10쪽 · 쪽 그림 10쪽

먼저 준비 단계부터 만듭니다. 7차시의 prepare_chunks를 그대로 씁니다.

📝 src/first_rag.py — 1단계

Python
from dotenv import load_dotenv
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from prepare import prepare_chunks        # 7차시에서 만든 함수

load_dotenv()

# ①② 문서 읽고 조각내기 (6·7차시 결과 재사용)
chunks = prepare_chunks("data/manual.pdf")

# ③ 조각을 벡터로 바꿔 저장
print("임베딩 중... (조금 걸립니다)")
emb = OpenAIEmbeddings(model="text-embedding-3-small")
store = FAISS.from_documents(chunks, emb)
print("✓ 인덱싱 완료")

실행 결과 예시 (코드를 읽고 만든 예상 화면입니다. 실제 실행 결과, 특히 모델의 답은 다를 수 있습니다)

출력
✓ 3쪽 로딩 완료 (총 1529자)
✓ 조각 21개 생성 (평균 77자, 최소 47자, 최대 99자)
⚠ 50자 미만 조각이 있습니다. chunk_size 확인 권장
임베딩 중... (조금 걸립니다)
✓ 인덱싱 완료

5-1) 실행해보기

출력
✓ 2쪽 로딩 완료 (총 343자)
✓ 조각 6개 생성 (평균 59자, 최소 13자, 최대 99자)
임베딩 중... (조금 걸립니다)
✓ 인덱싱 완료

⚠️ 여기서 에러가 난다면
AuthenticationError
→ .env 파일에 OPENAI_API_KEY가 제대로 있는지 확인하세요
→ load_dotenv()가 맨 위에 있는지 확인하세요
ModuleNotFoundError: faiss
→ pip install faiss-cpu
RateLimitError
→ API 사용 한도를 확인하세요. 결제 정보 등록이 필요할 수 있습니다

← 이전 절8차시 · 4. 새로 배우는 것 ② — 근거 기반 프롬프트다음 절 →8차시 · 6. 실습 ② — 검색만 먼저 확인하기