22차시. RAG를 Graph로 바꾸기
1. 오늘 할 일은 딱 하나
출처: 원본 PDF 22차시_RAG를Graph로바꾸기.pdf 2쪽 · 쪽 그림 2쪽
21차시에서 그래프 구조를 검증했고, 19차시에서 진짜 노드를 만들었습니다. 오늘은 둘을 합칩니다.
■ 21차시 (구조는 검증됨)
──────────────────────────────────────
def retrieve(state):
docs = [] if "없는" in q else ["조각A", "조각B"] ← 가짜
return {"documents": docs}
■ 19차시 (노드는 만들어둠)
──────────────────────────────────────
def retrieve_node(state):
pairs = _store.similarity_search_with_relevance_scores(...) ← 진짜
return {"documents": docs, "scores": scores, ...}
■ 오늘 (바꿔 끼우기)
──────────────────────────────────────
g.add_node("retrieve", retrieve_node) ← 진짜 노드로 교체
구조는 그대로!🔧 자동차 정비에 비유하면
21차시 — 엔진 자리에 모형을 넣고
배선·연료 라인·계기판 연결을 다 확인했습니다
오늘 — 모형을 빼고 진짜 엔진을 넣습니다
배선을 다시 할 필요가 없습니다.
이미 검증됐으니까요.
그래서 오늘은 생각보다 금방 끝납니다.
1-1) 기능은 하나도 안 늘어납니다
⚠️ 오늘 결과물의 성능은 15차시와 같습니다
· 답변 품질 → 동일
· 정답률 → 동일 (90%)
· 속도 → 오히려 아주 조금 느릴 수도
"그럼 왜 하는 거죠?"
기능이 아니라 '몸'을 바꾸는 작업이기 때문입니다.
지금은 같지만, 3부에서 검증·재검색·라우팅을
붙일 때 그 차이가 폭발적으로 드러납니다.