25차시. Generator Node 분리
퀴즈 1 — 재시도 여부로 프롬프트 고르기
retries가 0이면 기본 프롬프트, 0보다 크고 reason이 있으면 RETRY_PROMPT를 고르세요.
빈칸 코드에서 시작합니다.
def choose_prompt(retries, reason, basic, retry_prompt):
pass결과 보기 (예시 풀이)
# 몇 번째 생성인지와 실패 이유를 보고 어느 프롬프트를 쓸지 고르는 함수입니다.
# 진짜 프롬프트 객체 대신 이름 문자열을 넘겨 확인합니다.
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) 해결 — 실패 이유를 프롬프트에 넣기