29차시. Conditional Edge 실습
9. 오분류 점검
출처: 원본 PDF 29차시_ConditionalEdge실습.pdf 19쪽 · 쪽 그림 19쪽
라우팅에서 가장 위험한 것은 문서 질문을 놓치는 것입니다.
📝 오분류 검사
from nodes.classifier import classifier_node
# 반드시 document로 분류되어야 하는 질문들
MUST_BE_DOCUMENT = [
"환불은 며칠 이내인가요?",
"안녕하세요, 휴가 규정 알려주세요", # 인사 + 질문
"감사합니다. 그런데 교환은 어떻게 하나요?",
"고객센터 운영 시간이 궁금해요",
"7일 이내 환불이 맞나요?", # 숫자 포함
]
wrong = []
for q in MUST_BE_DOCUMENT:
r = classifier_node({"question": q})
if r["intent"] != "document":
wrong.append((q, r["intent"]))
print(f"오분류 {len(wrong)}/{len(MUST_BE_DOCUMENT)}건")
for q, got in wrong:
print(f" ✗ '{q}' -> {got}")실행 결과 예시 (코드를 읽고 만든 예상 화면입니다. 실제 실행 결과, 특히 모델의 답은 다를 수 있습니다)
오분류 1/5건
✗ '안녕하세요, 휴가 규정 알려주세요' -> greeting⚠️ 특히 주의할 패턴
① 인사 + 질문
"안녕하세요, 환불 규정 알려주세요"
→ 길이 제한(20자)으로 대부분 걸러집니다
→ 그래도 놓치면 규칙을 조정하세요
② 숫자가 포함된 문서 질문
"7일 이내 환불이 맞나요?"
→ CALC_PATTERN이 한글을 포함하지 않도록 확인
③ 범위 밖 키워드가 우연히 포함
"날씨가 안 좋을 때 배송은 어떻게 되나요?"
→ "날씨"가 있지만 문서 질문입니다!
→ 단순 키워드 매칭의 한계입니다
오분류가 발생하면 그 규칙을 빼고 LLM에 맡기세요.