Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Claude 4 모델부터 Claude API의 스트리밍 응답은 스트리밍 분류기가 잠재적인 정책 위반을 처리하기 위해 개입할 때 **stop_reason: "refusal"**을 반환합니다. 이 안전 기능은 실시간 스트리밍 중에 콘텐츠 규정 준수를 유지하는 데 도움이 됩니다.
스트리밍 분류기가 Anthropic의 정책을 위반하는 콘텐츠를 감지하면 API는 다음 응답을 반환합니다:
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello.."
}
],
"stop_reason": "refusal",
"stop_details": {
"type": "refusal",
"category": "cyber",
"explanation": "This request was declined because it could enable cyber harm."
}
}이벤트 스트림에서 stop_details는 stop_reason과 함께 message_delta 이벤트에 도착합니다.
**stop_reason: refusal**을 받으면 계속하기 전에 대화 컨텍스트를 재설정해야 합니다. 거부를 유발한 턴을 제거하거나 다시 표현하거나, 대화 기록을 완전히 지울 수 있습니다. 재설정하지 않고 계속 시도하면 거부가 계속 발생합니다.
애플리케이션에서 스트리밍 거부를 감지하고 처리하는 방법은 다음과 같습니다:
client = anthropic.Anthropic()
messages = []
def reset_conversation():
"""Reset conversation context after refusal"""
global messages
messages = []
print("Conversation reset due to refusal")
try:
with client.messages.stream(
max_tokens=1024,
messages=messages + [{"role": "user", "content": "Hello"}],
model="claude-opus-5",
) as stream:
for event in stream:
# 메시지 델타에서 거부(refusal) 여부 확인
if event.type == "message_delta":
if event.delta.stop_reason == "refusal":
reset_conversation()
break
except Exception as e:
print(f"Error: {e}")API는 현재 세 가지 다른 방식으로 거부를 처리합니다:
| 거부 유형 | 응답 형식 | 발생 시점 |
|---|---|---|
| 스트리밍 분류기 거부 | stop_reason: refusal | 스트리밍 중 콘텐츠가 정책을 위반할 때 |
| API 입력 및 저작권 검증 | 400 오류 코드 | 입력이 검증 확인에 실패할 때 |
| 모델 생성 거부 | 표준 텍스트 응답 | 모델 자체가 거부할 때 |
stop_reason: refusal 확인을 포함하세요이 기능이 처음 출시되었을 때 거부 처리를 구축했거나 기존 통합에 추가하는 경우 다음을 확인하세요:
stop_reason: "refusal"이 포함된 성공적인 HTTP 200 응답으로 도착하므로, 오류율만을 기반으로 구축된 모니터링으로는 이를 포착할 수 없습니다. 거부를 별도의 신호로 추적하세요.stop_details 객체도 포함됩니다. 전체 응답 형태는 거부 및 폴백을 참조하세요.stop_reason: "refusal"이 포함된 성공 결과로 반환됩니다.stop_reason을 중심으로 처리를 중앙화하세요. API는 stop_reason: "refusal"을 중심으로 거부 처리를 계속 통합하고 있으므로, 모델별 동작이 아닌 중지 이유를 기준으로 분기하세요.거부된 요청을 서버 측 또는 클라이언트에서 다른 Claude 모델로 재시도합니다.
모든 stop_reason 값과 처리 방법.
응답을 스트리밍하고 message_delta 이벤트가 도착하는 대로 stop_reason을 읽습니다.
Claude의 교차 언어 기능으로 여러 언어의 사용자에게 서비스를 제공합니다.
Was this page helpful?