Loading...
  • Construir
  • Administración
  • Modelos y precios
  • SDKs de cliente
  • Referencia de API
Search...
⌘K
Log in
Rechazos en streaming
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

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

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

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
Construir/Capacidades del modelo

Rechazos en streaming

Cómo manejar rechazos de contenido cuando se transmiten respuestas de Claude

Was this page helpful?

  • Formato de respuesta de API
  • Restablecer contexto después del rechazo
  • Guía de implementación
  • Tipos de rechazo actuales
  • Mejores prácticas
  • Notas de migración

A partir de los modelos Claude 4, las respuestas de streaming de la API de Claude devuelven stop_reason: "refusal" cuando los clasificadores de streaming intervienen para manejar posibles violaciones de políticas. Esta nueva característica de seguridad ayuda a mantener el cumplimiento de contenido durante la transmisión en tiempo real.

Para obtener más información sobre los rechazos activados por los filtros de seguridad de API para Claude Sonnet 4.5, consulta Understanding Sonnet 4.5's API Safety Filters.

Formato de respuesta de API

Cuando los clasificadores de streaming detectan contenido que viola las políticas de Anthropic, la API devuelve esta respuesta:

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

No se incluye ningún mensaje de rechazo adicional. Debes manejar la respuesta y proporcionar mensajes apropiados orientados al usuario.

Restablecer contexto después del rechazo

Cuando recibas stop_reason: refusal, debes restablecer el contexto de la conversación eliminando o actualizando el turno que fue rechazado antes de continuar. Intentar continuar sin restablecer resultará en rechazos continuos.

Las métricas de uso se proporcionan en la respuesta para fines de facturación, incluso cuando la respuesta es rechazada.

Se te facturará por los tokens de salida hasta el rechazo.

Si encuentras razones de parada refusal frecuentemente mientras usas Claude Sonnet 4.5 u Opus 4.1, puedes intentar actualizar tus llamadas de API para usar Haiku 4.5 (claude-haiku-4-5-20251001), que tiene restricciones de uso diferentes. Obtén más información sobre understanding Sonnet 4.5's API safety filters.

Guía de implementación

Aquí te mostramos cómo detectar y manejar rechazos de streaming en tu aplicación:

Tipos de rechazo actuales

La API actualmente maneja rechazos de tres formas diferentes:

Tipo de RechazoFormato de RespuestaCuándo Ocurre
Rechazos del clasificador de streamingstop_reason: refusalDurante el streaming cuando el contenido viola políticas
Validación de entrada de API y derechos de autorCódigos de error 400Cuando la entrada falla las verificaciones de validación
Rechazos generados por el modeloRespuestas de texto estándarCuando el modelo decide rechazar por sí mismo

Las futuras versiones de API expandirán el patrón stop_reason: refusal para unificar el manejo de rechazos en todos los tipos.

Mejores prácticas

  • Monitorea los rechazos: Incluye verificaciones de stop_reason: refusal en tu manejo de errores
  • Restablece automáticamente: Implementa el restablecimiento automático del contexto cuando se detecten rechazos
  • Proporciona mensajes personalizados: Crea mensajes amigables para el usuario para una mejor experiencia de usuario cuando ocurren rechazos
  • Rastrea patrones de rechazo: Monitorea la frecuencia de rechazos para identificar posibles problemas con tus indicaciones

Notas de migración

  • Los modelos futuros expandirán este patrón a otros tipos de rechazo
  • Planifica tu manejo de errores para acomodar la futura unificación de respuestas de rechazo
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-sonnet-4-6",
    ) as stream:
        for event in stream:
            # Check for refusal in message delta
            if hasattr(event, "type") and event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")