DEVELOPMENT NOTE / Ask Wiki

질문 재작성으로 멀티턴 검색 적중률 개선

문제

  • ChatMemory가 생성 단계만 보완하고 선행 검색에는 전달되지 않는 구조
  • “그럼 반차는?”처럼 주제어가 생략된 follow-up 질문의 검색 실패
  • 원문 질문 캐시 키 사용 시 서로 다른 대화 맥락의 충돌 가능성

해결

  • 검색 전 대화 맥락을 포함한 독립형 질문으로 재작성
  • 재작성된 질문을 캐시 키로 사용해 문맥 충돌 제거
  • Redis 기반 대화 저장으로 재시작·다중 인스턴스 대응
  • 생성 프롬프트에서는 히스토리를 제외해 검색 문서 중심 답변 유지

검증 방법

  • 8개 문서에서 첫 질문과 “그럼 반차는?”처럼 핵심 명사가 생략된 후속 질문 8쌍을 구성
  • 재작성 OFF는 후속 질문 원문을, ON은 이전 대화를 반영한 독립형 질문을 같은 인덱스에 검색
  • 각 조건에서 기대 문서가 첫 결과와 상위 4개 안에 포함되는지 각각 집계

검증 결과

조건첫 번째 결과 적중률상위 4개 결과 적중률
재작성 OFF12.5%62.5%
Gemini 재작성 ON62.5%100%

한계

  • 8문항·8문서의 작은 코퍼스
  • top-K 확대 시 줄어드는 재작성 이점
  • 약한 3B 모델에서 검색 적중률과 재작성 문장 품질의 불일치