18차시. State 이해
이번 차시에서 배우는 것
출처: 원본 PDF 18차시_State이해.pdf 1쪽 · 쪽 그림 1쪽
State 이해 — 노드들이 함께 쓰는 공책
✓ State가 왜 필요한지, 무엇을 대신해주는지 이해한다 ✓ TypedDict로 State 스키마를 직접 설계한다
✓ 노드가 '바뀐 값만' 반환하는 규칙을 이해한다
✓ Reducer로 값을 덮어쓰지 않고 누적한다
✓ RAG용 State를 3부까지 고려해 설계한다
✓ State 흐름을 눈으로 추적하는 방법을 익힌다
교안 해설: 이 시간에 하는 일
출처: 교안 18_State이해.md
노드가 늘면 함수 인자로 질문, 문서, 재시도 횟수를 전부 넘기기 어렵습니다. State 하나에 키를 추가합니다. 노드는 바꾼 키만 return합니다. return하지 않은 키는 남습니다. State 딕셔너리를 함수 안에서 직접 고치면 reducer가 적용되지 않을 수 있으므로, 새 딕셔너리를 return합니다.
reducer_demo.py가 핵심입니다. reducer가 없으면 log는 마지막 노드 값만 남습니다. operator.add reducer가 있으면 세 단계 문자열이 이어 붙습니다. 질문처럼 하나여야 하는 키에는 reducer를 붙이지 않습니다.
RAG State는 question(사용자 원문, 불변)과 query(검색어, 나중에 재작성)를 나눕니다. 이 구분은 32차시에서 값을 합니다. graph_state.py는 키 선언이라 표준 출력이 없습니다.
강의 PPT 흐름
출처: 강의 PPT 18차시_State이해.pptx (19장)
| 장 | 꼬리표 | 슬라이드 제목 |
|---|---|---|
| 1 | - | 실습으로 배우는 LangGraph : 내 손으로 RAG 시스템 만들기 |
| 2 | LEARNING GOALS | 이번 차시에서 배우는 것 |
| 3 | WITHOUT STATE | 함수 인자로 주고받으면 |
| 4 | ONE NOTEBOOK | 하나의 공유 공책 |
| 5 | KEY TERMS | 핵심 용어 |
| 6 | FOUR RULES | State의 동작 규칙 네 가지 |
| 7 | RETURN ONLY CHANGES | 바꾼 키만 반환한다 |
| 8 | WATCH IT GROW | State가 자라나는 모습 |
| 9 | REDUCER | 덮어쓰지 않고 쌓아야 할 때 |
| 10 | WHICH KEYS | 어떤 키에 Reducer를 쓸까 |
| 11 | RAG STATE | RAG용 State 설계하기 |
| 12 | TWO QUESTIONS | question과 query를 나누는 이유 |
| 13 | INITIAL STATE | 초기값을 챙겨 넣기 |
| 14 | TRACE IT | State 흐름을 눈으로 추적하기 |
| 15 | DON'T MUTATE | State를 직접 수정하면 안 되는 이유 |
| 16 | TROUBLESHOOTING | 자주 겪는 문제 |
| 17 | CHECKLIST | 이번 차시 체크리스트 |
| 18 | NEXT | 다음 차시 미리보기 — 19차시 Node 이해 |
| 19 | - | 마무리 |