엄격 모드도 값의 뜻까지 보장하지는 않아
구조화 출력의 엄격 모드는 JSON 문법과 스키마 모양을 지켜줘. 하지만 열거값을 잘못 고르거나 범위를 벗어나거나 업무 규칙을 어기는 일까지 막지는 못해. 그래서 검증기와 수리 반복은 여전히 필요해.
수리 반복의 기본 순서
- 출력을 생성해.
- Pydantic, Zod, JSON Schema 검증기로 의미 규칙까지 검사해.
- 틀렸다면 검증 오류를 모델에 돌려주고 고치게 해.
- 재시도는 보통 두세 번으로 제한해.
- 그래도 틀리면 사용자에게 구조화된 오류를 돌려줘.
검증 규칙을 미리 알려주면 재시도가 줄어
“reason_codes는 [low_confidence, missing_evidence, policy_block, ok] 가운데 하나여야 하고, 맞는 값이 없으면 notes와 함께 ok를 써”처럼 규칙을 프롬프트에서 먼저 설명해. 모델이 거절을 당하며 규칙을 알아내게 하는 것보다 훨씬 싸.