28차시. Conditional Edge 이해
6. 실습 — 조건표 설계 연습
출처: 원본 PDF 28차시_ConditionalEdge이해.pdf 15~16쪽 · 쪽 그림 15쪽 16쪽
코드를 쓰기 전에 표로 설계하는 습관을 들입니다.
6-1) 설계 4단계
| 단계 | 할 일 |
|---|---|
| ① 경로 나열 | 이 분기점에서 갈 수 있는 곳을 모두 적는다 |
| ② 조건 작성 | 각 경로로 가는 조건을 State 키 기준으로 적는다 |
| ③ 순서 정렬 | 안전장치 → 정상 → 구체 → 기본 순으로 배치 |
| ④ 누락 점검 | 어떤 조건에도 안 걸리는 경우가 있는지 확인 |
6-2) 실습 과제 — 32차시 최종 분기 설계
✏️ 아래 표를 채워보세요
32차시에 완성될 verify 이후 분기입니다.
경로가 4개입니다.
· END (정상 종료)
· bump → generate (재생성)
· rewrite → retrieve (재검색)
· fallback (안전 종료)
각각 어떤 조건일 때 가야 할까요?
| 순서 | 조건 | 반환값 | 다음 노드 |
|------|------|--------|-----------|
| 1 | | | |
| 2 | | | |
| 3 | | | |
| 4 | | | |6-3) 정답 예시
| 순서 | 조건 | 반환값 | 다음 노드 |
|---|---|---|---|
| 1 | retries ≥ MAX_RETRY | "giveup" | fallback |
| 2 | grade == "pass" | "done" | END |
| 3 | grade == "research" | "research" | rewrite |
| 4 | 그 외 전부 | "regenerate" | bump |
def route_after_verify(state) -> str:
if state.get("retries", 0) >= MAX_RETRY:
return "giveup"
grade = state.get("grade", "retry")
if grade == "pass":
return "done"
if grade == "research":
return "research"
return "regenerate"