RAG2026-5일25차시 · Generator Node 분리16 / 19← 이전목차다음 →MetaContents

25차시. Generator Node 분리

퀴즈 1 — 재시도 여부로 프롬프트 고르기

retries가 0이면 기본 프롬프트, 0보다 크고 reason이 있으면 RETRY_PROMPT를 고르세요.

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

Python
def choose_prompt(retries, reason, basic, retry_prompt):
    pass
결과 보기 (예시 풀이)
Python
# 몇 번째 생성인지와 실패 이유를 보고 어느 프롬프트를 쓸지 고르는 함수입니다.
# 진짜 프롬프트 객체 대신 이름 문자열을 넘겨 확인합니다.
def choose_prompt(retries, reason, basic, retry_prompt):
    # 다시 쓰는 중이고(retries > 0) 반려 이유가 있을 때만 재시도 프롬프트
    if retries > 0 and reason:
        return retry_prompt
    # 첫 생성이거나, 이유 없이 다시 쓰는 경우는 기본 프롬프트
    return basic

BASIC = "PROMPTS['v3']"
RETRY = "RETRY_PROMPT"   # PROMPTS 딕셔너리에 넣지 않고 따로 둡니다

# 확인 1: 첫 생성 → 기본 프롬프트
print(choose_prompt(0, "", BASIC, RETRY))

# 확인 2: 재시도이고 이유가 있음 → 재시도 프롬프트
print(choose_prompt(1, "인용 없음", BASIC, RETRY))

# 확인 3: 재시도인데 이유가 비어 있음 → 넣을 피드백이 없으니 기본 프롬프트
print(choose_prompt(2, "", BASIC, RETRY))

실행 결과

출력
PROMPTS['v3']
RETRY_PROMPT
PROMPTS['v3']

채점 기준: PROMPTS 딕셔너리에 retry를 넣지 않는다.

관련 교안: 25차시 「6. 실습 ③ — 재생성 시 피드백 반영」 › 6-2) 해결 — 실패 이유를 프롬프트에 넣기

← 이전 절25차시 · 실습 1 — Generator Node 분리 실습 따라 하기다음 절 →25차시 · 퀴즈 2 — 근거가 없으면 모델을 부르지 않는 생성