21차시. 첫 번째 LangGraph 실습
퀴즈 2 — 통과·상한·재시도 순으로 가르는 판단 함수
grade가 pass가 아니고 retries가 상한 미만일 때만 bump로 보내세요.
빈칸 코드에서 시작합니다.
def after_verify(state, limit):
pass결과 보기 (예시 풀이)
# verify 노드 다음에 어디로 갈지 정하는 판단 함수입니다.
# 노드를 부르지 않고, 다음 노드의 이름(문자열)만 돌려줍니다.
def after_verify(state, limit):
# 1) 통과했으면 바로 끝냅니다.
if state.get("grade") == "pass":
return "done"
# 2) 통과하지 못했고 재시도 횟수가 상한에 닿았으면 포기합니다.
# 이 검사가 없으면 bump → generate 루프가 끝없이 돕니다.
if state.get("retries", 0) >= limit:
return "fallback"
# 3) 둘 다 아니면 횟수를 올리러 bump 로 보냅니다.
return "bump"
LIMIT = 2
# 확인 1: 통과 → done
print(after_verify({"grade": "pass", "retries": 0}, LIMIT))
# 확인 2: 실패, 아직 0회 → bump (재시도)
print(after_verify({"grade": "retry", "retries": 0}, LIMIT))
# 확인 3: 실패, 이미 2회 → fallback (상한 도달)
print(after_verify({"grade": "retry", "retries": 2}, LIMIT))
# 확인 4: 상한에 닿았어도 통과했으면 done (pass 를 먼저 보기 때문)
print(after_verify({"grade": "pass", "retries": 2}, LIMIT))
실행 결과
done
bump
fallback
done채점 기준: pass가 먼저, 그 다음 상한, 마지막이 bump다.
관련 교안: 21차시 「5. 실습 ③ — 그래프 조립」