18차시. State 이해
정리
- 노드가 늘면 인자 목록이 길어지고 끼워 넣기가 어려워지므로, 모든 노드가 State 하나만 받게 합니다. (18차시 「1. 왜 State라는 개념이 필요할까?」)
- 노드는 바꾼 키만 반환하고, 반환하지 않은 키는 이전 값이 유지됩니다. (18차시 「3. State의 동작 규칙 4가지」 › 3-2) 규칙 ② — 바꾼 키만 반환한다)
- 기본은 덮어쓰기이고, log처럼 쌓아야 하는 키에만
Annotated[List[str], operator.add]Reducer를 붙입니다. (18차시 「5. Reducer — 덮어쓰지 않고 쌓기」) - retries 같은 카운터에는 Reducer를 붙이지 않고 노드가 직접 +1 해서 반환합니다. (18차시 「5. Reducer — 덮어쓰지 않고 쌓기」 › 5-3) 어떤 키에 Reducer를 쓸까?)
- question은 사용자 원문이라 바꾸지 않고, 검색어 query만 재작성합니다. (18차시 「7. RAG용 State 설계하기」 › 7-2) question과 query를 나누는 이유 (중요))
- 초기 State에 query를 빠뜨리면 KeyError가 나므로 make_initial_state로 초기값을 챙깁니다. (18차시 「8. 실습 ③ — RAGState 완성」 › 8-1) 초기값 채우기)