24차시. Retriever Node 분리
체크리스트와 과제
원본 PDF 끝부분의 체크리스트, 과제, 다음 차시 미리보기를 한 페이지에 모았습니다.
이번 차시 체크리스트
출처: 원본 PDF 20쪽 · 쪽 그림 20쪽
개념 이해
□ 왜 검색을 가장 먼저 독립시키는지 안다
□ 좋은 Retriever Node의 4가지 원칙을 안다
□ 노드가 판단하지 않고 재료만 남기는 이유를 안다
□ low_score와 no_result의 처방 차이를 안다
□ 점진적 확대에 하한이 필요한 이유를 안다
실습
□ nodes/retriever.py를 만들었다
□ fail_reason으로 실패 사유를 구분한다
□ 예외가 나도 정상 반환한다
□ 6가지 케이스로 단독 테스트했다
□ top_k를 State로 바꿔 결과 변화를 확인했다
□ 점진적 확대 전략을 적용했다
□ 그래프에 연결하고 회귀 테스트를 통과했다
□ 입출력 명세를 주석으로 남겼다
과제
출처: 원본 PDF 20쪽 · 쪽 그림 20쪽
🎯 이번 차시 과제
1. Retriever Node 완성 (필수)
본문 코드를 기반으로 내 프로젝트에 맞게 만드세요.
반드시 예외 처리와 fail_reason을 포함합니다.
2. 실패 사유 분포표 (필수)
12차시 질문 20개를 돌려 표를 채우세요.
| fail_reason | 건수 | 해당 질문 예시 |
| (정상) | | |
| low_score | | |
| no_result | | |
low_score로 분류된 질문이 30차시의 개선 대상입니다.
3. 임계값 재점검 (필수)
9-1의 두 기준으로 MIN_SCORE가 적절한지 확인하고
필요하면 조정한 뒤 근거를 config에 기록하세요.
4. 점진적 확대 실험 (권장)
retries를 0·1·2로 강제 설정해 돌려보고
통과 조각 수가 어떻게 변하는지 표로 정리하세요.
다음 차시 미리보기
출처: 원본 PDF 21쪽 · 쪽 그림 21쪽
25차시: Generator Node 분리
두 번째 모듈을 만듭니다.
· 프롬프트와 LLM 호출을 하나의 모듈로 캡슐화
· 근거가 부족하면 스스로 신고하게 만들기
· 출처 인용을 코드로 검증하기
· 프롬프트를 버전으로 관리해 A/B 비교
생성 노드가 자기 결과를 점검하면
26차시 검증이 훨씬 정확해집니다.
💬 마무리
오늘 만든 노드는 어제 것과 답변 품질이 같습니다. 그런데 State에 남기는 정보가 훨씬 많아졌습니다.
scores, retrieval_ok, fail_reason.
지금은 쓰이지 않는 값들입니다.
하지만 29차시에서 조건 분기를 만들 때, 30차시에서 재검색을 붙일 때, 이 정보가 없으면 아무것도 판단할 수 없습니다.
좋은 모듈은 자기 일을 잘하는 모듈이 아니라, 다음 단계가 판단할 수 있게 재료를 남기는 모 듈입니다.
다음 차시에서 만나요! 🔍