Claude Platform Docs
  • Messages
  • Managed Agents
  • 관리자

Search...
⌘K
첫 단계
Claude 소개빠른 시작
Claude로 빌드하기
기능 개요Messages API 사용하기중지 이유 및 폴백거부 및 폴백폴백 크레딧
모델 기능
확장 사고적응형 사고Effort작업 예산 (베타)고속 모드 (리서치 프리뷰)구조화된 출력인용스트리밍 메시지배치 처리검색 결과스트리밍 거부다국어 지원임베딩
도구
개요도구 사용 작동 방식튜토리얼: 도구 사용 에이전트 빌드하기도구 정의도구 호출 처리병렬 도구 사용Tool Runner (SDK)엄격한 도구 사용프롬프트 캐싱과 도구 사용서버 도구문제 해결웹 검색 도구웹 가져오기 도구코드 실행 도구어드바이저 도구메모리 도구Bash 도구컴퓨터 사용 도구텍스트 편집기 도구
도구 인프라
도구 레퍼런스도구 컨텍스트 관리도구 조합도구 검색프로그래밍 방식 도구 호출세분화된 도구 스트리밍
컨텍스트 관리
컨텍스트 윈도우압축컨텍스트 편집프롬프트 캐싱대화 중 시스템 메시지오케스트레이션 모드 빌드하기캐시 진단 (베타)토큰 계산
파일 작업
Files APIPDF 지원이미지 및 비전
스킬
개요빠른 시작모범 사례엔터프라이즈용 스킬API의 스킬
MCP
원격 MCP 서버MCP 커넥터
클라우드 플랫폼의 Claude
Amazon BedrockAmazon Bedrock (레거시)AWS의 Claude PlatformMicrosoft FoundryVertex AI

Log in
스트리밍 거부
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/모델 기능

스트리밍 거부

스트리밍 응답에서 거부 중지 사유를 감지하고 처리하며, 거부된 요청을 대체 모델에서 재시도합니다.

Claude 4 모델부터 Claude API의 스트리밍 응답은 스트리밍 분류기가 잠재적인 정책 위반을 처리하기 위해 개입할 때 **stop_reason: "refusal"**을 반환합니다. 이 안전 기능은 실시간 스트리밍 중 콘텐츠 규정 준수를 유지하는 데 도움이 됩니다.



이 페이지는 스트리밍 응답에서 거부가 어떻게 나타나는지 다룹니다. 모든 stop_reason 값과 처리 방법은 중지 사유 및 대체를 참조하세요. 거부된 요청을 다른 Claude 모델에서 재시도하려면 거부 및 대체를 참조하세요.

API 응답 형식

스트리밍 분류기가 Anthropic의 정책을 위반하는 콘텐츠를 감지하면 API는 다음 응답을 반환합니다:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


추가적인 거부 메시지는 포함되지 않습니다. 응답을 처리하고 적절한 사용자 대상 메시지를 제공해야 합니다.

거부 후 컨텍스트 재설정

**stop_reason: refusal**을 받으면 계속하기 전에 대화 컨텍스트를 재설정해야 합니다. 거부를 유발한 턴을 제거하거나 다시 표현하거나, 대화 기록을 완전히 지울 수 있습니다. 재설정하지 않고 계속 시도하면 거부가 계속 발생합니다.



응답이 거부된 경우에도 사용량 지표는 응답에 계속 제공됩니다.

Claude가 출력을 생성하기 전에 거부가 도착하면 Claude API에서 해당 요청에 대해 요금이 청구되지 않으며, 해당 응답의 사용량 수치는 정보 제공용입니다. Claude가 거부 전에 출력을 생성한 경우에는 해당 요청에 대해 요금이 청구됩니다.



컨텍스트 재설정이 유일한 복구 방법은 아닙니다. 거부된 요청을 다른 Claude 모델에서 재시도할 수도 있으며, 거부 및 대체 페이지에서 서버 측 대체, SDK 미들웨어 또는 수동 재시도로 이를 설정하는 방법을 확인할 수 있습니다.

구현 가이드

애플리케이션에서 스트리밍 거부를 감지하고 처리하는 방법은 다음과 같습니다:

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-4-8",
    ) as stream:
        for event in stream:
            # 메시지 델타에서 거부 여부 확인
            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 오류 코드입력이 검증 확인에 실패할 때
모델 생성 거부표준 텍스트 응답모델 자체가 거부하기로 결정할 때


향후 API 버전에서는 stop_reason: refusal 패턴을 확장하여 모든 유형에 걸쳐 거부 처리를 통합할 예정입니다.

모범 사례

  • 거부 모니터링: 오류 처리에 stop_reason: refusal 확인을 포함하세요
  • 자동 재설정: 거부가 감지되면 자동 컨텍스트 재설정을 구현하세요
  • 다른 모델로 대체: 거부된 요청이 사용자에게 거부로 표시되는 대신 다른 Claude 모델에서 재시도되도록 서버 측 대체 또는 SDK 미들웨어를 구성하세요
  • 수동 재시도 시 대체 크레딧 사용: 재시도를 직접 구현하는 경우, 재시도가 프롬프트 캐시 비용을 두 번 지불하지 않도록 거부의 대체 크레딧 토큰을 전달하세요
  • 사용자 지정 메시지 제공: 거부가 발생할 때 더 나은 UX를 위해 사용자 친화적인 메시지를 만드세요
  • 거부 패턴 추적: 프롬프트의 잠재적 문제를 식별하기 위해 거부 빈도를 모니터링하세요

마이그레이션 참고 사항

이 기능이 처음 출시되었을 때 거부 처리를 구축했거나 기존 통합에 추가하는 경우 다음 사항을 확인하세요:

  • 거부는 오류가 아니라 응답입니다. 거부는 stop_reason: "refusal"과 함께 성공적인 HTTP 200 응답으로 도착하므로, 오류율만을 기반으로 구축된 모니터링으로는 이를 감지할 수 없습니다. 거부를 자체 신호로 추적하세요.
  • 최신 모델은 더 많은 세부 정보를 반환합니다. Claude Fable 5에서는 거부에 거절 결정의 배경이 된 정책 카테고리를 식별하는 stop_details 객체도 포함됩니다. 전체 응답 형태는 거부 및 대체를 참조하세요.
  • 다른 모델에서 재시도하세요. 거부된 요청을 동일한 모델로 다시 보내면 일반적으로 또 다른 거부가 발생합니다. 컨텍스트만 재설정하는 대신 서버 측 대체, SDK 미들웨어 또는 수동 재시도를 사용하여 대체 모델에서 재시도하고, 재시도를 직접 구현하는 경우 대체 크레딧을 사용하세요.
  • 배치 결과에서 거부를 확인하세요. Message Batch에서 거부된 요청은 오류 결과가 아니라 stop_reason: "refusal"과 함께 성공한 결과로 반환됩니다.
  • stop_reason을 중심으로 처리를 통합하세요. API는 거부 처리를 stop_reason: "refusal" 중심으로 계속 통합하고 있으므로, 모델별 동작이 아닌 중지 사유를 기준으로 분기하세요.

다음 단계

거부 및 대체

서버 측 또는 클라이언트에서 거부된 요청을 다른 Claude 모델에서 재시도하세요.


중지 사유 및 대체

모든 stop_reason 값과 처리 방법입니다.


스트리밍 메시지

응답을 스트리밍하고 도착하는 message_delta 이벤트에서 stop_reason을 읽으세요.


다국어 지원

Claude의 교차 언어 기능으로 여러 언어의 사용자를 지원하세요.

Was this page helpful?

  • API 응답 형식
  • 거부 후 컨텍스트 재설정
  • 구현 가이드
  • 현재 거부 유형
  • 모범 사례
  • 마이그레이션 참고 사항
  • 다음 단계