17차시. LangGraph 입문
퀴즈 2 — 조건에 따라 다음 노드 이름 고르기
조건이 참이면 yes 노드 이름, 아니면 no 노드 이름을 반환하세요.
빈칸 코드에서 시작합니다.
def route(state):
pass결과 보기 (예시 풀이)
def route(state):
# 조건부 엣지 함수는 State를 고치지 않습니다.
# State를 보고 다음에 갈 노드 이름(문자열)만 돌려줍니다.
if state.get("ok"):
return "yes"
# ok 키가 없거나 False면 no 쪽으로 보냅니다.
return "no"
# 반환값을 실제 노드로 잇는 표입니다.
# add_conditional_edges 의 세 번째 인자와 같은 모양입니다.
next_node = {"yes": "answer", "no": "search"}
# 확인 1: ok가 True면 yes, 표를 따라 answer로 갑니다.
s1 = {"ok": True}
print(route(s1), "→", next_node[route(s1)])
# 확인 2: ok가 False면 no, 다시 search로 돌아갑니다.
s2 = {"ok": False}
print(route(s2), "→", next_node[route(s2)])
# 확인 3: ok 키가 아예 없어도 get 덕분에 오류 없이 no가 나옵니다.
s3 = {}
print(route(s3), "→", next_node[route(s3)], "/ State 그대로:", s3)
실행 결과
yes → answer
no → search
no → search / State 그대로: {}채점 기준: 반환은 다음 노드 이름 문자열이다. State를 수정하면 오답이다.
관련 교안: 17차시 「조건부 분기가 있는 Graph 만들기」