RAG2026-5일24차시 · Retriever Node 분리7 / 18← 이전목차다음 →MetaContents

24차시. Retriever Node 분리

4. 실패 사유를 구분하는 이유

출처: 원본 PDF 24차시_RetrieverNode분리.pdf 9쪽 · 쪽 그림 9쪽

오늘 추가한 fail_reason이 왜 중요한지 봅시다.

fail_reason의미적절한 처방
empty_query질의가 비어 있음사용자에게 재입력 요청
search_error인덱스·시스템 오류fallback으로 안전 종료
no_result인덱스에 아무것도 없음인덱스 재생성 필요 (설정 문제)
low_score가져왔지만 점수 미달질의 재작성 후 재검색 (30차시)
(빈 문자열)정상generate로 진행

🎯 low_score와 no_result는 다릅니다
no_result — 인덱스가 비어 있거나 뭔가 잘못됨
→ 질문을 바꿔도 소용없습니다
→ 시스템 설정을 확인해야 합니다
low_score — 문서는 있는데 표현이 안 맞음
→ 질문을 바꾸면 찾을 수 있습니다!
→ 30차시 rewrite의 대상입니다
이 둘을 구분하지 않으면
"인덱스가 비었는데 질문만 계속 바꾸는" 헛수고가 생깁니다.

💡 14차시의 남은 실패를 떠올려보세요
"반품하고 싶은데 언제까지?"
문서에는 "환불"이라고 적혀 있어서
점수가 0.41로 기준(0.47)에 미달했습니다.
→ fail_reason = "low_score"
→ 30차시에서 "환불 신청 기한"으로 고쳐 재검색
→ 해결됩니다
오늘 남긴 이 한 줄이 그 길을 열어줍니다.

← 이전 절24차시 · 3. 실습 ① — Retriever Node 완성다음 절 →24차시 · 5. 실습 ② — 단독 테스트