24차시. Retriever Node 분리
이번 차시에서 배우는 것
출처: 원본 PDF 24차시_RetrieverNode분리.pdf 1쪽 · 쪽 그림 1쪽
Retriever Node 분리 — 검색을 독립 부품으로
✓ 검색 로직을 State만으로 동작하는 독립 모듈로 만든다 ✓ 검색 옵션을 State로 받아 실행 중에 조정한다
✓ 점수와 신뢰도를 State에 남겨 이후 판단에 쓴다
✓ 9차시에서 정한 MIN_SCORE를 실전에 적용한다
✓ 그래프 없이 노드만 테스트하는 코드를 만든다
✓ 입출력 명세를 문서로 남긴다
교안 해설: 이 시간에 하는 일
출처: 교안 24_RetrieverNode분리.md
검색을 먼저 독립시키는 이유는 실패의 대부분이 검색에서 시작되기 때문입니다. 19차시 노드는 유사도 한 방식만 쓰고, 왜 실패했는지를 남기지 않습니다. 오늘은 State만 읽고, 문서와 점수와 retrieval_ok와 fail_reason을 씁니다. 노드는 재검색할지 판단하지 않습니다. 재료만 남깁니다.
실패 이유는 빈 검색어, 결과 없음, 점수가 기준 미만처럼 나뉩니다. 점수가 낮은 실패는 32차시 재작성으로 이어집니다. 재검색 때는 같은 k로 다시 찾지 않고 k를 조금씩 늘리거나 기준 점수를 조금 낮춥니다. 하한이 없으면 무관한 조각까지 통과합니다.
graph.py의 경로는 아직 retrieve에서 generate 또는 종료입니다. graph27.py는 나중 검증 루프의 미리보기입니다. 샘플은 API 예시입니다.
강의 PPT 흐름
출처: 강의 PPT 24차시_RetrieverNode분리.pptx (19장)
| 장 | 꼬리표 | 슬라이드 제목 |
|---|---|---|
| 1 | - | 실습으로 배우는 LangGraph : 내 손으로 RAG 시스템 만들기 |
| 2 | LEARNING GOALS | 이번 차시에서 배우는 것 |
| 3 | WHY FIRST | 왜 검색을 가장 먼저 독립시킬까 |
| 4 | WHAT'S MISSING | 19차시 노드의 아쉬운 점 |
| 5 | KEY TERMS | 핵심 용어 |
| 6 | FOUR PRINCIPLES | 좋은 Retriever Node의 설계 원칙 |
| 7 | THE OUTPUT | 검색 노드가 남기는 것 |
| 8 | FAIL REASONS | 실패 사유를 구분하는 이유 |
| 9 | THE MISSING PIECE | 14차시의 남은 실패를 떠올려보세요 |
| 10 | SINGLE TEST | 단독 테스트 — 여섯 가지 케이스 |
| 11 | WIDEN GRADUALLY | 점진적 확대 전략 |
| 12 | TRADE-OFF | 넓게 찾을 때의 득실 |
| 13 | STATE KEYS | 오늘 State에 추가되는 키 |
| 14 | SAME RESULT | 22차시와 결과가 같아야 정상입니다 |
| 15 | DOCUMENT IT | 입출력 명세를 남기면 |
| 16 | TROUBLESHOOTING | 자주 겪는 문제 |
| 17 | CHECKLIST | 이번 차시 체크리스트 |
| 18 | NEXT | 다음 차시 미리보기 — 25차시 Generator Node 분리 |
| 19 | - | 마무리 |