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

21차시. 첫 번째 LangGraph 실습

퀴즈 2 — 통과·상한·재시도 순으로 가르는 판단 함수

grade가 pass가 아니고 retries가 상한 미만일 때만 bump로 보내세요.

빈칸 코드에서 시작합니다.

Python
def after_verify(state, limit):
    pass
결과 보기 (예시 풀이)
Python
# 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. 실습 ③ — 그래프 조립」

← 이전 절21차시 · 퀴즈 1 — '없는' 질문에 검색 실패를 내는 더미 노드다음 절 →21차시 · 정리