Loading...
    • Construire
    • Admin
    • Modèles & tarification
    • SDKs clients
    • Référence API
    Search...
    ⌘K
    Log in
    Refus 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
    Construire/Capacités du modèle

    Refusals en streaming

    Découvrez comment gérer les refusals en streaming avec Claude 4 et les versions ultérieures

    À partir des modèles Claude 4, les réponses en streaming de l'API de Claude retournent stop_reason: "refusal" lorsque les classificateurs de streaming interviennent pour gérer les violations potentielles de politique. Cette nouvelle fonctionnalité de sécurité aide à maintenir la conformité du contenu lors du streaming en temps réel.

    Pour en savoir plus sur les refusals déclenchés par les filtres de sécurité de l'API pour Claude Sonnet 4.5, consultez Understanding Sonnet 4.5's API Safety Filters.

    Format de réponse API

    Lorsque les classificateurs de streaming détectent du contenu qui viole les politiques d'Anthropic, l'API retourne cette réponse :

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

    Aucun message de refusal supplémentaire n'est inclus. Vous devez gérer la réponse et fournir un message approprié destiné à l'utilisateur.

    Réinitialiser le contexte après un refusal

    Lorsque vous recevez stop_reason: refusal, vous devez réinitialiser le contexte de la conversation en supprimant ou en mettant à jour le tour qui a été refusé avant de continuer. Tenter de continuer sans réinitialiser entraînera des refusals continus.

    Les métriques d'utilisation sont toujours fournies dans la réponse à des fins de facturation, même lorsque la réponse est refusée.

    Vous serez facturé pour les tokens de sortie jusqu'au refusal.

    Si vous rencontrez fréquemment des raisons d'arrêt refusal lors de l'utilisation de Claude Sonnet 4.5 ou Opus 4.1, vous pouvez essayer de mettre à jour vos appels API pour utiliser Haiku 4.5 (claude-haiku-4-5-20251001), qui a des restrictions d'utilisation différentes. En savoir plus sur understanding Sonnet 4.5's API safety filters.

    Guide de mise en œuvre

    Voici comment détecter et gérer les refusals en streaming dans votre application :

    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}")

    Types de refusal actuels

    L'API gère actuellement les refusals de trois façons différentes :

    Type de RefusalFormat de RéponseQuand cela se produit
    Refusals du classificateur de streamingstop_reason: refusalPendant le streaming lorsque le contenu viole les politiques
    Validation des entrées API et des droits d'auteurCodes d'erreur 400Lorsque l'entrée échoue les vérifications de validation
    Refusals générés par le modèleRéponses texte standardLorsque le modèle lui-même décide de refuser

    Les futures versions de l'API étendront le modèle stop_reason: refusal pour unifier la gestion des refusals dans tous les types.

    Bonnes pratiques

    • Surveiller les refusals : Incluez des vérifications stop_reason: refusal dans votre gestion des erreurs
    • Réinitialiser automatiquement : Implémentez une réinitialisation automatique du contexte lorsque des refusals sont détectés
    • Fournir une messagerie personnalisée : Créez des messages conviviaux pour une meilleure expérience utilisateur lorsque des refusals se produisent
    • Suivre les modèles de refusal : Surveillez la fréquence des refusals pour identifier les problèmes potentiels avec vos invites

    Notes de migration

    • Les futurs modèles étendront ce modèle à d'autres types de refusals
    • Planifiez votre gestion des erreurs pour accommoder l'unification future des réponses de refusal

    Was this page helpful?

    • Format de réponse API
    • Réinitialiser le contexte après un refusal
    • Guide de mise en œuvre
    • Types de refusal actuels
    • Bonnes pratiques
    • Notes de migration