피드로 돌아가기
Dev.toAI/ML
원문 읽기
pgvector와 text-embedding-3-small 기반 RAG 파이프라인 구축
RAG with OpenAI Embeddings, pgvector and LangChain
AI 요약
Context
대규모 문서에서 단순 키워드 매칭의 한계로 인한 정밀한 정보 추출 필요성 증대. LLM의 Hallucination 방지를 위해 외부 지식을 동적으로 제공하는 Retrieval-Augmented Generation 구조 채택.
Technical Solution
- RecursiveCharacterTextSplitter를 통한 chunkSize 800, chunkOverlap 120 설정으로 컨텍스트 단절 방지 및 검색 정밀도 향상
- text-embedding-3-small 모델을 활용한 1536차원 고밀도 벡터 생성 및 pgvector 내 VECTOR 타입 저장
- Cosine Distance 기반의 Nearest-Neighbor Search를 통해 질문과 의미적으로 가장 유사한 Top-k 청크 추출
- 0.35~0.45 범위의 Distance Threshold 필터링을 적용하여 낮은 유사도의 무관한 컨텍스트 유입 차단
- 추출된 컨텍스트를 LLM 프롬프트에 주입하여 외부 지식에 기반한 Grounded Answer 생성 로직 구현
실천 포인트
1. 문서 특성에 맞는 chunkSize와 chunkOverlap 수치 최적화
2. pgvector의 Cosine Distance 기반 Top-k 검색 및 Threshold 필터링 로직 구현
3. 컨텍스트 부족 시 LLM의 임의 답변을 방지하는 Fallback 메시지 처리 프로세스 구축