18차시. State 이해
1. 왜 State라는 개념이 필요할까?
출처: 원본 PDF 18차시_State이해.pdf 3쪽 · 쪽 그림 3쪽
17차시에서 그래프는 노드와 엣지로 이루어진다고 배웠습니다. 그런데 노드끼리 어떻게 정보를 주고받을까요?
1-1) 함수 인자로 주고받으면
■ 노드가 3개일 때 — 아직 견딜 만합니다
──────────────────────────────────────
def retrieve(query):
return docs
def generate(docs, question):
return answer
def show(answer, docs):
...
■ 노드가 6개로 늘면 — 감당이 안 됩니다
──────────────────────────────────────
def rewrite(question, retries, prev_query, fail_reason):
return new_query, retries
def retrieve(query, top_k, category, min_score):
return docs, scores
def generate(docs, question, prompt_ver, retries):
return answer, insufficient
def verify(answer, docs, question, retries):
return grade, reason
... 인자 목록이 계속 길어집니다
... 중간에 노드 하나를 끼우면 앞뒤를 다 고쳐야 합니다⚠️ 인자 전달 방식의 4가지 문제
① 인자 목록이 계속 길어집니다
노드가 늘수록 감당이 안 됩니다
② 노드를 끼워 넣기 어렵습니다
중간에 검증 노드를 넣으면 앞뒤 함수를 다 고쳐야 합니다
③ 값의 출처를 추적하기 어렵습니다
retries가 어디서 만들어져 어디까지 갔는지 모릅니다
④ 조건 분기에서 판단할 정보가 부족합니다
분기 함수에도 필요한 값을 다 넘겨줘야 합니다