RAG2026-5일26차시 · Verifier Node 설계17 / 19← 이전목차다음 →MetaContents

26차시. Verifier Node 설계

퀴즈 2 — 판정 재료로 pass·retry·research 고르기

근거에 있으면 pass, 질문과 어긋나면 retry, 근거 자체가 부족하면 research.

빈칸 코드에서 시작합니다.

Python
def grade(grounded, relevant, enough_context):
    pass
결과 보기 (예시 풀이)
Python
# 심판의 판정 재료 세 가지로 grade 를 정합니다. 답 문장은 건드리지 않습니다.
def grade(grounded, relevant, enough_context):
    # 근거 자체가 모자라면 다시 써도 소용없으니 재검색(research)입니다.
    if not enough_context:
        return "research"
    # 근거에도 맞고 질문에도 답했으면 통과입니다.
    if grounded and relevant:
        return "pass"
    # 근거는 충분한데 답을 잘못 썼으면 같은 근거로 재생성(retry)합니다.
    return "retry"

# (grounded, relevant, enough_context, 설명) 를 차례로 넣어 봅니다.
cases = [
    (True, True, True, "정상 답변"),
    (False, True, True, "환각 포함"),
    (True, False, True, "질문과 어긋남"),
    (True, True, False, "근거 부족"),
]
for g, r, e, desc in cases:
    # 설명 옆에 grade 가 기대대로(pass, retry, retry, research) 나오는지 봅니다.
    print(f"{desc:8} -> {grade(g, r, e)}")

실행 결과

출력
정상 답변    -> pass
환각 포함    -> retry
질문과 어긋남  -> retry
근거 부족    -> research

채점 기준: answer 문자열을 고쳐 반환하면 오답이다.

관련 교안: 26차시 「6. 판정 결과를 세 가지로 나눈 이유」

← 이전 절26차시 · 퀴즈 1 — 인용 실패·짧은 답은 심판 없이 retry다음 절 →26차시 · 정리