20차시. Edge 이해
9. 설계는 표로 먼저
출처: 원본 PDF 20차시_Edge이해.pdf 18쪽 · 쪽 그림 18쪽
코드를 짜기 전에 표로 정리하면 실수가 크게 줄어듭니다.
9-1) 라우팅 설계표
| 출발 노드 | 조건 | 경로 이름 | 도착 |
|---|---|---|---|
| retrieve | retrieval_ok = True | ok | generate |
| retrieve | retrieval_ok = False | empty | fallback |
| verify | grade = pass | end | END |
| verify | retries ≥ 2 | giveup | fallback |
| verify | 그 외 | retry | bump |
9-2) 표를 코드로 옮기기
def route_after_verify(state):
if state.get("grade") == "pass":
return "end"
if state.get("retries", 0) >= 2:
return "giveup"
return "retry"
g.add_conditional_edges("verify", route_after_verify, {
"end": END,
"giveup": "fallback",
"retry": "bump",
})💡 표가 곧 코드입니다
표의 행 순서 = if문 순서
표의 "경로 이름" = 분기 함수 반환값 = 경로 맵의 키
조건 순서에 주의하세요.
안전장치(재시도 상한)는 항상 위쪽에 둡니다.
아래에 두면 무시될 수 있습니다.