728x90
이 글에서는 지금까지 살펴본 RAG 구성 요소들을 실제 프로젝트로 통합하기 위한
폴더 구조 설계와 Python 환경 세팅, 필수 패키지 설치 방법까지
RAG 프로젝트의 기본구조를 구성해봅니다.
🎯 목표
- 실제 프로젝트 형태의 디렉토리 구조 만들기
- Python 가상환경 설정
- 필수 라이브러리 설치 (langchain, openai, chromadb 등)
🗂️ Step 1. 프로젝트 디렉토리 구조 설계
rag-iceberg-project/
│
├── data/ # metadata.json 보관 디렉토리
│ └── products_metadata.json
│
├── docs/ # 전처리된 자연어 문서 저장
│ └── products.txt
│
├── src/ # 핵심 코드 디렉토리
│ ├── load_json.py # JSON 로더 및 파서
│ ├── embed_documents.py # 문서 임베딩 및 벡터 저장
│ ├── qa_chain.py # Retrieval QA 체인 구성
│ └── config.py # API 키 및 설정 관리
│
├── .env # 환경변수 저장 (OpenAI Key 등)
├── requirements.txt # 의존성 목록
└── main.py # 실행 엔트리포인트
💻 Step 2. Python 가상환경 생성
# ✅ 가상환경 생성 (venv 기준)
python3 -m venv venv
# ✅ 가상환경 활성화 (Mac/Linux)
source venv/bin/activate
# ✅ Windows인 경우
venv\Scripts\activate
📦 Step 3. 필수 라이브러리 설치
pip install --upgrade pip
# ✅ 핵심 패키지 설치
pip install langchain openai chromadb python-dotenv
# ✅ 선택적 추천: 로깅 및 포맷팅
pip install rich tiktoken
💡 설치 목록을 requirements.txt에 저장해둡니다:
langchain
openai
chromadb
python-dotenv
rich
tiktoken
🔐 Step 4. 환경변수 (.env) 파일 구성
# ✅ OpenAI API Key 등록
OPENAI_API_KEY=sk-xxxxxxx...
그리고 config.py 파일에서 이 값을 불러옵니다:
# src/config.py
from dotenv import load_dotenv # .env 파일 로드
import os
load_dotenv() # 환경변수 읽기
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") # 키 가져오기
✅ main.py 시작 예시
# main.py
from src.qa_chain import create_qa_chain # QA 체인 구성 함수
from src.load_json import load_metadata # Iceberg JSON 로딩 함수
# 질문 예시
query = "상품 테이블의 파티션은 무엇인가요?"
# 체인 실행
qa = create_qa_chain()
result = qa.run(query)
print("📣 응답:", result)
이후 단계에서 각 모듈들을 하나씩 구현해 나가게 됩니다.
📎 요약 및 핵심 정리
- RAG 실습을 통합 프로젝트로 구성하기 위해 기본 폴더 구조를 먼저 설계합니다.
- .env로 API 키를 관리하고, src/ 디렉토리에 기능별 모듈을 나눠 구성합니다.
- 앞으로 모든 실습은 이 구조를 기반으로 확장됩니다.
728x90
'LLM & Generative AI > RAG in Practice' 카테고리의 다른 글
[LangChain RAG 구축 시리즈 Ep.16] 🧠 변환된 텍스트 문서를 OpenAI Embedding으로 벡터화하기 (0) | 2025.04.05 |
---|---|
[LangChain RAG 구축 시리즈 Ep.15] 📄 Iceberg metadata.json 로딩 및 텍스트화 (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.13] 🧪 Stuff / MapReduce / Refine 전략 비교 (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.12] 🧵 대화형 검색과 맥락 기억 기능 구현해보기 (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.11] 🔄 Retrieval QA 실습: 문서 기반 답변 구성 (1) | 2025.04.05 |