멈춘 까닭이 응답의 상태를 말해 줘
모든 응답에는 stop_reason이 있어. end_turn은 자연스러운 완료, max_tokens는 출력 예산 소진, stop_sequence는 지정 문자열 도달, tool_use는 도구 실행 요청을 뜻해. 문장이 그럴듯하게 끝났어도 max_tokens라면 잘린 결과로 다뤄야 해.
중단 문자열은 가벼운 경계에 써
stop_sequences=["</answer>", "END"]를 주면 둘 중 하나가 생성되는 즉시 멈춰. 프롬프트와 함께 쓰면 짧고 단순한 조각을 떼어 내기 편해. 중첩 구조나 엄격한 검증이 필요한 데이터에는 도구 사용이나 스키마를 설명한 JSON 출력을 택해.
도구 없이 JSON을 받을 수도 있어
시스템 프롬프트에 정확한 JSON 스키마를 적고, 도우미 메시지를 {로 미리 채운 뒤, 결과를 방어적으로 해석하는 방식이 있어. 미리 채운 시작 문자가 모델을 원하는 형식으로 유도하지만 유효성을 보장하지는 않으니 파서와 검증은 빼면 안 돼.
원칙: 겉보기 길이가 아니라 stop_reason으로 분기해. 완료와 잘림을 구별하는 계약은 그 값이야.