RAG2026-5일25차시 · Generator Node 분리3 / 19← 이전목차다음 →MetaContents

25차시. Generator Node 분리

이번 차시에서 배우는 것

출처: 원본 PDF 25차시_GeneratorNode분리.pdf 1쪽 · 쪽 그림 1쪽

Generator Node 분리 — 못 하겠으면 못하겠다고

✓ 프롬프트와 LLM 호출을 하나의 모듈로 캡슐화한다 ✓ 근거가 부족하면 스스로 신고하게 만든다
✓ 출처 인용을 코드로 검증한다
✓ 프롬프트를 버전으로 관리해 A/B 비교한다
✓ 재생성 시 이전 실패를 반영하게 만든다
✓ LLM 호출 오류를 안전하게 처리한다

교안 해설: 이 시간에 하는 일

출처: 교안 25_GeneratorNode분리.md

생성 노드는 지식을 만들지 않습니다. 이미 고른 근거를 문장으로 옮깁니다. 근거가 없으면 LLM을 부르지 않고 안내 문장만 돌려줍니다. 호출해도 '없습니다'가 나오는데 요금과 지어낼 위험만 남기 때문입니다.

반환 키는 answer, 근거 부족을 스스로 적는 insufficient, 인용 번호가 유효한지 has_citation입니다. 인용 검사는 번호가 있는지, 그 번호가 조각 개수 안에 있는지를 봅니다. 내용이 근거와 맞는지는 다음 차시 Verifier가 봅니다.

다시 쓸 때 같은 프롬프트를 반복하면 temperature 0에서 거의 같은 답이 나옵니다. generator2.py는 이전 실패 이유를 재시도 프롬프트에 넣습니다. 그 틀은 PROMPTS["retry"]가 아니라 RETRY_PROMPT를 직접 가져옵니다. PROMPTS에 넣으면 13차시 compare_prompt.py와 validators.py가 {reason} 없이 모든 틀을 돌려서 멈춥니다. 두 파일 모두 API 예시입니다.

강의 PPT 흐름

출처: 강의 PPT 25차시_GeneratorNode분리.pptx (17장)

장꼬리표슬라이드 제목
1-실습으로 배우는 LangGraph : 내 손으로 RAG 시스템 만들기
2LEARNING GOALS이번 차시에서 배우는 것
3WHY SEPARATE검색과 생성이 붙어 있으면
4THE ROLE생성 노드의 역할을 한마디로
5GOOD GENERATOR좋은 생성 노드의 정의
6KEY TERMS핵심 용어
7FOUR POINTSGenerator Node의 설계 포인트
8SELF-REPORT부족 신호가 왜 중요한가
9CHECK CITATIONS인용 검증 — 두 가지를 함께 봅니다
10SKIP THE CALL근거가 없으면 LLM을 부르지 않는다
11THE OUTPUT생성 노드가 남기는 것
12FEEDBACK LOOP재생성 시 이전 실패를 반영하기
13VERSIONS프롬프트를 버전으로 관리하기
14TROUBLESHOOTING자주 겪는 문제
15CHECKLIST이번 차시 체크리스트
16NEXT다음 차시 미리보기 — 26차시 Verifier Node 설계
17-마무리
← 이전 절25차시 · 용어 짚고 가기다음 절 →25차시 · 1. 생성 모듈이 따로 있어야 하는 이유