RAG2026-5일28차시 · Conditional Edge 이해11 / 17← 이전목차다음 →MetaContents

28차시. Conditional Edge 이해

8. 자주 하는 실수

출처: 원본 PDF 28차시_ConditionalEdge이해.pdf 19쪽 · 쪽 그림 19쪽

실수올바른 방법
분기 함수 안에서 State를 수정판단만 합니다. 값 변경이 필요하면 노드를 만드세요
경로맵에 없는 문자열을 반환반환 가능한 값을 모두 맵에 넣고 기본 경로를 두세요
대소문자가 달라 KeyError경로 이름을 상수로 정의해 재사용하세요
조건 순서가 뒤바뀌어 상한이 무시됨안전장치를 가장 위에 배치하세요
분기 함수에서 LLM을 호출느리고 비쌉니다. 노드에서 판단해 State에 넣으세요
분기 조건이 10개가 넘음노드에서 미리 계산하거나 2단계로 나누세요

8-1) 분기 함수에서 LLM을 부르면 안 되는 이유

⚠️ 유혹적이지만 위험합니다
def route(state):
answer = llm.invoke("이 질문은 어떤 유형?") # ❌
문제점
· 분기 함수는 여러 번 호출될 수 있습니다
그때마다 비용이 발생합니다
· 같은 State인데 다른 결과가 나올 수 있습니다
결정성이 깨집니다
· 실패하면 그래프 전체가 중단됩니다
예외 처리할 곳이 없습니다
올바른 방법
classify_node에서 LLM을 부르고 intent를 State에 저장
분기 함수는 state["intent"]만 읽음

← 이전 절28차시 · 7. 분기 함수 디버깅다음 절 →28차시 · 체크리스트와 과제