RAG 도입기 — 챗봇을 만들다, 조용히 그리고 낭만적으로…
두줄요약
Spring AI와 AWS 기반으로 FAQ 데이터를 검색·정제·생성하는 RAG 챗봇 구축 과정을 소개했습니다. Hybrid Search, Chunking, 관련성 평가의 선택 기준과 운영 고려사항을 정리했습니다.
문제 상황
- FAQ 기반 챗봇의 검색 정확도·문맥 유지·응답 품질 확보 필요
- HTML 원문, 임베딩 토큰 제한, 관련도 낮은 검색 결과 처리 과제
구조와 흐름
- DB FAQ를 Batch 서버에서 HTML→Markdown·Plain Text 변환, Chunking·Embedding 후 OpenSearch 적재
- ChatBot 서버의 Retrieve→Merge→Score Filter→Relevance→Prompt→Generation 6단계 흐름
- Hybrid Search로 키워드 검색과 Cohere 임베딩 기반 벡터 검색 결합, Parent Markdown 문서로 문맥 보강
트레이드오프
- Overlap 적용으로 경계 문맥 손실 완화와 인덱스 중복 간 균형
- Cohere Rerank의 일괄 처리 속도 대신 LLM 직접 평가의 설명 가능성·커스터마이징 선택
- script_score의 정밀한 점수 제어 대신 직접 임베딩 호출과 처리 복잡도·속도 부담 회피
성능/운영 포인트
- Hybrid Query의 min_score 미지원으로 애플리케이션 레벨 _score 필터링 적용
- Relevance 60점 초과, 최종 10개 이하 문서로 컨텍스트 노이즈와 환각 가능성 축소
- Spring AI 스트리밍 응답과 고객지원팀 모니터링 기반 FAQ 보강

