DEVELOPMENT NOTE / Ask Wiki
Spring AI RAG 파이프라인과 임베딩
문제
- 학습 데이터에 없는 사내 규정을 그럴듯하게 생성하는 LLM 환각
- 문서 변경마다 재학습이 필요한 파인튜닝의 운영 부담
- 답변 근거와 출처를 통제할 검색 계층 필요
구조
- 색인: 문서 업로드 → 500자 청킹·50자 오버랩 → 768차원 임베딩 → 원문·벡터 저장
- 질의: 질문 임베딩 → 유사 청크 top-K 검색 → 컨텍스트 주입 → 답변·출처 반환
- 동일 텍스트 임베딩을 Caffeine에 캐시해 반복 호출 제거
선택
- 로컬 학습 환경의 비용과 키 관리 부담을 줄이기 위한 Ollama — 채택
- 의미 검색을 위한
nomic-embed-text, 생성 시작점으로llama3.2:3b— 채택 - 토큰 사용량 확보를 위한
call(Prompt)→ChatResponse경로 사용
확인 방법
- 평가 문서 8개를 업로드한 뒤 각 청크의 원문 문서 ID가 검색 결과와 함께 반환되는지 확인
- 답이 있는 질문은 기대 문서가 top-K 결과에 포함되고, 최종 답변의 출처가 같은 문서를 가리키는지 대조
- 답이 없는 질문에서 수동 판정이 일관되지 않아 고정 질문 평가 하네스로 검증을 확장
결과
- 문서 근거와 출처를 함께 반환하는 RAG 동작 확인
- 수동 확인의 한계를 발견하고 고정 질문 평가 하네스로 검증 범위 확장