21차시. 첫 번째 LangGraph 실습
7. 실습 ④ — 세 가지 경로 모두 확인하기
출처: 원본 PDF 21차시_첫번째LangGraph실습.pdf 13~14쪽 · 쪽 그림 13쪽 14쪽
더미 노드의 장점을 살려 모든 경로를 테스트합니다.
CASES = [
("환불 규정은?", "정상 (재시도 1회 후 통과)"),
("없는 내용 질문", "검색 실패 → fallback"),
]
for q, desc in CASES:
print(f"\n{'='*55}")
print(f"[{desc}] Q: {q}")
print('='*55)
result = app.invoke(init(q), {"recursion_limit": 15})
print(f"\n최종 답변 : {result['answer']}")
print(f"재시도 : {result['retries']}회")
print(f"판정 : {result['grade']}")
print(f"경로 로그 : {' → '.join(result['log'])}")
═════════════════════════════════════════════
══════════
[정상 (재시도 1회 후 통과)] Q: 환불 규정은?
═════════════════════════════════════════════
══════════
→ retrieve: 3건
→ generate: 부실한 답변
→ verify: 재시도
→ bump: 1회차
→ generate: 좋은 답변
→ verify: 통과
최종 답변 : 3건 근거로 만든 좋은 답변
재시도 : 1회
판정 : pass
경로 로그 : 검색 3건 → 생성(부실한) → 검증 실패 → 재시도 1
→ 생성(좋은) → 검증 통과
═════════════════════════════════════════════
══════════
[검색 실패 → fallback] Q: 없는 내용 질문
═════════════════════════════════════════════
══════════
→ retrieve: 0건
→ fallback
최종 답변 : 자료를 찾지 못했습니다.
재시도 : 0회
판정 : giveup
경로 로그 : 검색 0건 → fallback💡 두 경로가 모두 정상 동작하면
그래프 구조가 검증된 것입니다.
22차시에서 할 일은
더미 노드를 진짜 노드로 바꿔 끼우는 것뿐입니다.
구조는 건드리지 않습니다.