5장 검색과 생성을 분리한다
검색기는 후보 근거를 찾고 생성기는 그 근거를 문장으로 만든다. 답이 틀렸을 때 둘을 분리해야 원인을 찾을 수 있다. 검색 상위 k, 키워드/벡터 혼합, 재순위화는 평가 세트로 조정한다.
const evidence = retrieve(question, documents)
.filter(item => item.score >= MIN_SCORE);
if (evidence.length === 0) return {answer:'근거 문서에서 찾지 못했습니다.', citations:[]};
return compose(question, evidence);
검색 결과 한 건은 {documentId, version, section, text, score} 구조다. MIN_SCORE는 임의로 고정하지 않고 6장의 ‘근거 없음’ 평가 세트로 조정한다. top-k 검색은 아무 질문에나 결과를 돌려줄 수 있으므로 결과 개수만으로 답변 가능 여부를 판정하지 않는다.
실습 5 모르면 모른다고 답한다
fixture에 없는 “해외 배송비”를 묻는다. 시스템이 비슷한 국내 배송 문장을 짜깁기하지 않고 근거 없음으로 끝나야 한다.