피드로 돌아가기
Dev.toAI/ML
원문 읽기
ChromaDB와 Claude를 활용한 외부 지식 기반 RAG 챗봇 설계
How to Build a RAG Chatbot with Python
AI 요약
Context
LLM의 학습 데이터 한계로 인한 할루시네이션 및 최신 정보 반영 불가 문제 발생. 모델 재학습 없이 외부 문서를 실시간 참조하여 답변의 근거를 확보하는 Retrieval-Augmented Generation 구조 필요.
Technical Solution
- PDF 및 텍스트 데이터의 효율적 처리를 위한 chunk_size 500, overlap 50 기반의 텍스트 분할 전략 채택
- all-MiniLM-L6-v2 모델을 통한 텍스트 벡터화 및 ChromaDB PersistentClient 기반의 벡터 인덱싱 구현
- 사용자 쿼리에 최적화된 Top-k(n_results=5) 유사도 검색을 통한 관련 컨텍스트 추출
- 추출된 텍스트 조각을 프롬프트에 직접 주입하여 Claude-Sonnet-4.5 모델의 답변 범위 제약 및 정확도 향상
- ChromaDB의 Metadata filtering을 통한 특정 문서 기반 검색 범위 제한 설계
실천 포인트
- 텍스트 분할 시 문맥 손실 방지를 위한 Overlap 설정 여부 검토 - 서비스 규모에 따른 벡터 DB의 Persistence 전략 및 인덱싱 캐싱 도입 고려 - Production 환경 전환 시 Cross-Encoder 기반의 Reranking 단계 추가 검토 - 프롬프트 내 'Answer using ONLY the context' 제약 조건 설정을 통한 할루시네이션 억제