17차시. LangGraph 입문
퀴즈 1 — 바꾼 칸만 돌려주는 인사 노드
노드 함수는 State를 받아 바꾼 키만 반환합니다. 인사 노드를 작성하세요.
빈칸 코드에서 시작합니다.
def greet(state):
pass결과 보기 (예시 풀이)
def greet(state):
# 노드는 State 전체를 다시 쓰지 않습니다.
# 이번에 바꾼 칸(answer)만 새 딕셔너리에 담아 돌려줍니다.
return {"answer": "안녕하세요"}
def run_node(node, state):
# LangGraph가 하는 일을 흉내 냅니다.
# 원래 State에 노드가 돌려준 칸만 덮어써서 다음 State를 만듭니다.
update = node(state)
return {**state, **update}
state = {"query": "안녕?", "answer": ""}
new_state = run_node(greet, state)
# 확인 1: 노드가 돌려준 것은 바뀐 칸 하나뿐이어야 합니다.
print("노드 반환값:", greet(state))
# 확인 2: 합친 뒤에는 query는 그대로, answer만 채워집니다.
print("합친 State:", new_state)
# 확인 3: 원래 state는 노드가 직접 고치지 않았으므로 그대로입니다.
print("원래 State:", state)
실행 결과
노드 반환값: {'answer': '안녕하세요'}
합친 State: {'query': '안녕?', 'answer': '안녕하세요'}
원래 State: {'query': '안녕?', 'answer': ''}채점 기준: state를 직접 고치지 않고 새 딕셔너리를 반환한다.
관련 교안: 17차시 「체크리스트와 과제」