RAG2026-5일21차시 · 첫 번째 LangGraph 실습10 / 19← 이전목차다음 →MetaContents

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차시에서 할 일은
더미 노드를 진짜 노드로 바꿔 끼우는 것뿐입니다.
구조는 건드리지 않습니다.

← 이전 절21차시 · 6. invoke vs stream다음 절 →21차시 · 8. 그래프 디버깅 4가지 기법