Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Ressources
    AperçuGlossairePrompts système
    AperçuRoutage des ticketsAgent de support clientModération de contenuRésumé juridique
    Console
    Log in
    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
    • Catalog
    • 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
    • Catalog
    • 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
    Cas d'usage

    Modération de contenu

    La modération de contenu est un aspect critique du maintien d'un environnement sûr, respectueux et productif dans les applications numériques. Dans ce guide, nous discuterons de la façon dont Claude peut être utilisé pour modérer le contenu au sein de votre application numérique.

    Was this page helpful?

    • Avant de construire avec Claude
    • Décider d'utiliser Claude pour la modération de contenu
    • Générer des exemples de contenu à modérer
    • Comment modérer le contenu à l'aide de Claude
    • Sélectionner le bon modèle Claude
    • Construire une invite forte
    • Évaluer votre invite
    • Déployer votre invite
    • Améliorer les performances
    • Définir les sujets et fournir des exemples
    • Considérer le traitement par lots

    Visitez notre guide de modération de contenu pour voir un exemple d'implémentation de modération de contenu utilisant Claude.

    Ce guide se concentre sur la modération du contenu généré par les utilisateurs au sein de votre application. Si vous recherchez des conseils sur la modération des interactions avec Claude, veuillez consulter notre guide des garde-fous.

    Avant de construire avec Claude

    Décider d'utiliser Claude pour la modération de contenu

    Voici quelques indicateurs clés selon lesquels vous devriez utiliser un LLM comme Claude au lieu d'une approche traditionnelle basée sur le ML ou les règles pour la modération de contenu :

    Anthropic a entraîné tous les modèles Claude pour être honnêtes, utiles et inoffensifs. Cela peut entraîner Claude modérant le contenu jugé particulièrement dangereux (conformément à notre Politique d'utilisation acceptable), indépendamment de l'invite utilisée. Par exemple, un site Web pour adultes qui souhaite permettre aux utilisateurs de publier du contenu sexuel explicite peut constater que Claude signale toujours le contenu explicite comme nécessitant une modération, même s'il spécifie dans son invite de ne pas modérer le contenu sexuel explicite. Nous recommandons d'examiner notre AUP avant de construire une solution de modération.

    Générer des exemples de contenu à modérer

    Avant de développer une solution de modération de contenu, créez d'abord des exemples de contenu qui doivent être signalés et du contenu qui ne doit pas être signalé. Assurez-vous d'inclure des cas limites et des scénarios difficiles qui peuvent être difficiles à gérer efficacement pour un système de modération de contenu. Ensuite, examinez vos exemples pour créer une liste bien définie de catégories de modération. Par exemple, les exemples générés par une plateforme de médias sociaux pourraient inclure les éléments suivants :

    allowed_user_comments = [
        'This movie was great, I really enjoyed it. The main actor really killed it!',
        'I hate Mondays.',
        'It is a great time to invest in gold!'
    ]
    
    disallowed_user_comments = [
        'Delete this post now or you better hide. I am coming after you and your family.',
        'Stay away from the 5G cellphones!! They are using 5G to control you.',
        'Congratulations! You have won a $1,000 gift card. Click here to claim your prize!'
    ]
    
    # Sample user comments to test the content moderation
    user_comments = allowed_user_comments + disallowed_user_comments
    
    # List of categories considered unsafe for content moderation
    unsafe_categories = [
        'Child Exploitation',
        'Conspiracy Theories',
        'Hate',
        'Indiscriminate Weapons', 
        'Intellectual Property',
        'Non-Violent Crimes', 
        'Privacy',
        'Self-Harm',
        'Sex Crimes',
        'Sexual Content',
        'Specialized Advice',
        'Violent Crimes'
    ]

    La modération efficace de ces exemples nécessite une compréhension nuancée du langage. Dans le commentaire, This movie was great, I really enjoyed it. The main actor really killed it!, le système de modération de contenu doit reconnaître que « killed it » est une métaphore, pas une indication de violence réelle. Inversement, malgré l'absence de mentions explicites de violence, le commentaire Delete this post now or you better hide. I am coming after you and your family. doit être signalé par le système de modération de contenu.

    La liste unsafe_categories peut être personnalisée pour répondre à vos besoins spécifiques. Par exemple, si vous souhaitez empêcher les mineurs de créer du contenu sur votre site Web, vous pouvez ajouter « Underage Posting » à la liste.


    Comment modérer le contenu à l'aide de Claude

    Sélectionner le bon modèle Claude

    Lors de la sélection d'un modèle, il est important de considérer la taille de vos données. Si les coûts sont une préoccupation, un modèle plus petit comme Claude Haiku 3 est un excellent choix en raison de son efficacité des coûts. Voici une estimation du coût de modération de texte pour une plateforme de médias sociaux qui reçoit un milliard de messages par mois :

    • Taille du contenu

      • Messages par mois : 1 milliard
      • Caractères par message : 100
      • Caractères totaux : 100 milliards
    • Jetons estimés

      • Jetons d'entrée : 28,6 milliards (en supposant 1 jeton pour 3,5 caractères)
      • Pourcentage de messages signalés : 3 %
      • Jetons de sortie par message signalé : 50
      • Jetons de sortie totaux : 1,5 milliard
    • Coût estimé de Claude Haiku 3

    Les coûts réels peuvent différer de ces estimations. Ces estimations sont basées sur l'invite mise en évidence dans la section sur le traitement par lots. Les jetons de sortie peuvent être réduits davantage en supprimant le champ explanation de la réponse.

    Construire une invite forte

    Pour utiliser Claude pour la modération de contenu, Claude doit comprendre les exigences de modération de votre application. Commençons par écrire une invite qui vous permet de définir vos besoins de modération :

    import anthropic
    import json
    
    # Initialize the Anthropic client
    client = anthropic.Anthropic()
    
    def moderate_message(message, unsafe_categories):
        # Convert the list of unsafe categories into a string, with each category on a new line
        unsafe_category_str = '\n'.join(unsafe_categories)
        
        # Construct the prompt for Claude, including the message and unsafe categories
        assessment_prompt = f"""
        Determine whether the following message warrants moderation, 
        based on the unsafe categories outlined below.
        
        Message:
        <message>{message}</message>
    
        Unsafe Categories:
        <categories>
        {unsafe_category_str}
        </categories>
    
        Respond with ONLY a JSON object, using the format below:
        {{
        "violation": <Boolean field denoting whether the message should be moderated>,
        "categories": [Comma-separated list of violated categories],
        "explanation": [Optional. Only include if there is a violation.]
        }}"""
    
        # Send the request to Claude for content moderation
        response = client.messages.create(
            model="claude-3-haiku-20240307",  # Using the Haiku model for lower costs
            max_tokens=200,
            temperature=0,   # Use 0 temperature for increased consistency
            messages=[
                {"role": "user", "content": assessment_prompt}
            ]
        )
        
        # Parse the JSON response from Claude
        assessment = json.loads(response.content[0].text)
        
        # Extract the violation status from the assessment
        contains_violation = assessment['violation']
        
        # If there's a violation, get the categories and explanation; otherwise, use empty defaults
        violated_categories = assessment.get('categories', []) if contains_violation else []
        explanation = assessment.get('explanation') if contains_violation else None
        
        return contains_violation, violated_categories, explanation
    
    # Process each comment and print the results
    for comment in user_comments:
        print(f"\nComment: {comment}")
        violation, violated_categories, explanation = moderate_message(comment, unsafe_categories)
        
        if violation:
            print(f"Violated Categories: {', '.join(violated_categories)}")
            print(f"Explanation: {explanation}")
        else:
            print("No issues detected.")

    Dans cet exemple, la fonction moderate_message contient une invite d'évaluation qui inclut les catégories de contenu non sécurisé et le message que nous souhaitons évaluer. L'invite demande à Claude d'évaluer si le message doit être modéré, en fonction des catégories non sécurisées que nous avons définies.

    L'évaluation du modèle est ensuite analysée pour déterminer s'il y a une violation. S'il y a une violation, Claude retourne également une liste des catégories violées, ainsi qu'une explication sur la raison pour laquelle le message n'est pas sûr.

    Évaluer votre invite

    La modération de contenu est un problème de classification. Ainsi, vous pouvez utiliser les mêmes techniques décrites dans notre guide de classification pour déterminer la précision de votre système de modération de contenu.

    Une considération supplémentaire est qu'au lieu de traiter la modération de contenu comme un problème de classification binaire, vous pouvez plutôt créer plusieurs catégories pour représenter différents niveaux de risque. La création de plusieurs niveaux de risque vous permet d'ajuster l'agressivité de votre modération. Par exemple, vous pourriez vouloir bloquer automatiquement les requêtes utilisateur jugées à haut risque, tandis que les utilisateurs avec de nombreuses requêtes à risque moyen sont signalés pour examen humain.

    import anthropic
    import json
    
    # Initialize the Anthropic client
    client = anthropic.Anthropic()
    
    def assess_risk_level(message, unsafe_categories):
        # Convert the list of unsafe categories into a string, with each category on a new line
        unsafe_category_str = '\n'.join(unsafe_categories)
        
        # Construct the prompt for Claude, including the message, unsafe categories, and risk level definitions
        assessment_prompt = f"""
        Assess the risk level of the following message warrants moderation, 
        based on the unsafe categories listed below.
        
    Message:
    <message>{message}</message>
    
    Unsafe Categories:
    <categories>
    {unsafe_category_str}
    </categories>
    
    Assign a risk level based on your confidence that the user's message should be moderated 
    based on the defined unsafe categories:
    
    0 - No risk
    1 - Low risk
    2 - Medium risk
    3 - High risk
    
    Respond with ONLY a JSON object, using the format below:
    {{
      "risk_level": <Numerical field denoting the risk level>,
      "categories": [Comma-separated list of violated categories],
      "explanation": <Optional. Only include if risk level is greater than 0>
    }}"""
    
        # Send the request to Claude for risk assessment
        response = client.messages.create(
            model="claude-3-haiku-20240307",  # Using the Haiku model for lower costs
            max_tokens=200,
            temperature=0,   # Use 0 temperature for increased consistency
            messages=[
                {"role": "user", "content": assessment_prompt}
            ]
        )
        
        # Parse the JSON response from Claude
        assessment = json.loads(response.content[0].text)
        
        # Extract the risk level, violated categories, and explanation from the assessment
        risk_level = assessment["risk_level"]
        violated_categories = assessment["categories"]
        explanation = assessment.get("explanation")
        
        return risk_level, violated_categories, explanation
    
    # Process each comment and print the results
    for comment in user_comments:
        print(f"\nComment: {comment}")
        risk_level, violated_categories, explanation = assess_risk_level(comment, unsafe_categories)
        
        print(f"Risk Level: {risk_level}")
        if violated_categories:
            print(f"Violated Categories: {', '.join(violated_categories)}")
        if explanation:
            print(f"Explanation: {explanation}")

    Ce code implémente une fonction assess_risk_level qui utilise Claude pour évaluer le niveau de risque d'un message. La fonction accepte un message et une liste de catégories non sécurisées comme entrées.

    Dans la fonction, une invite est générée pour Claude, incluant le message à évaluer, les catégories non sécurisées et des instructions spécifiques pour évaluer le niveau de risque. L'invite demande à Claude de répondre avec un objet JSON qui inclut le niveau de risque, les catégories violées et une explication optionnelle.

    Cette approche permet une modération de contenu flexible en attribuant des niveaux de risque. Elle peut être intégrée de manière transparente dans un système plus large pour automatiser le filtrage de contenu ou signaler les commentaires pour examen humain en fonction de leur niveau de risque évalué. Par exemple, lors de l'exécution de ce code, le commentaire Delete this post now or you better hide. I am coming after you and your family. est identifié comme à haut risque en raison de sa menace dangereuse. Inversement, le commentaire Stay away from the 5G cellphones!! They are using 5G to control you. est catégorisé comme à risque moyen.

    Déployer votre invite

    Une fois que vous êtes confiant dans la qualité de votre solution, il est temps de la déployer en production. Voici quelques bonnes pratiques à suivre lors de l'utilisation de la modération de contenu en production :

    1. Fournir des commentaires clairs aux utilisateurs : Lorsque l'entrée utilisateur est bloquée ou qu'une réponse est signalée en raison de la modération de contenu, fournissez des commentaires informatifs et constructifs pour aider les utilisateurs à comprendre pourquoi leur message a été signalé et comment ils peuvent le reformuler de manière appropriée. Dans les exemples de codage ci-dessus, cela se fait via la balise explanation dans la réponse Claude.

    2. Analyser le contenu modéré : Gardez une trace des types de contenu signalés par votre système de modération pour identifier les tendances et les domaines potentiels d'amélioration.

    3. Évaluer et améliorer continuellement : Évaluez régulièrement les performances de votre système de modération de contenu en utilisant des métriques telles que le suivi de la précision et du rappel. Utilisez ces données pour affiner itérativement vos invites de modération, vos mots-clés et vos critères d'évaluation.


    Améliorer les performances

    Dans les scénarios complexes, il peut être utile de considérer des stratégies supplémentaires pour améliorer les performances au-delà des techniques standard d'ingénierie d'invite. Voici quelques stratégies avancées :

    Définir les sujets et fournir des exemples

    En plus de lister les catégories non sécurisées dans l'invite, d'autres améliorations peuvent être apportées en fournissant des définitions et des phrases liées à chaque catégorie.

    import anthropic
    import json
    
    # Initialize the Anthropic client
    client = anthropic.Anthropic()
    
    # Dictionary of categories considered unsafe for content moderation, with their definitions
    unsafe_category_definitions = {
        'Child Exploitation': 'Content that depicts child nudity or that enables, encourages, excuses, or depicts the sexual abuse of children.',
        'Conspiracy Theories': """Content that promotes or endorses unfounded, false, or misleading theories about events, situations, or individuals, 
            which can incite harm or undermine public trust in institutions or facts.""",
        'Hate': """Content that is hateful toward people on the basis of their protected characteristics 
            (race, color, ethnicity, national origin, disability, religious affiliation, caste, sexual orientation, sex, gender identity and serious disease), 
            or content that perpetuates negative stereotypes.""",
        'Indiscriminate Weapons': 'Content that enables the creation of weapons of mass destruction.', 
        'Intellectual Property': 'Content that violates the intellectual property rights of third parties.',
        'Non-Violent Crimes': 'Content that enables, encourages, or excuses the commission of non-violent crimes.', 
        'Privacy': 'Content that contains sensitive, personal information about private individuals.',
        'Self-Harm': 'Content that enables, encourages, or excuses acts of intentional self-harm.',
        'Sex Crimes': 'Content that enables, encourages, or excuses the commission of sex crimes.',
        'Sexual Content': 'Content that contains erotic descriptions or explicit depictions of sex acts.',
        'Specialized Advice': """Content that contains financial, medical, or legal advice. 
            Financial advice includes guidance on investments, stocks, bonds, or any financial planning.""",
        'Violent Crimes': 'Content that enables, encourages, or excuses the commission of violent crimes.', 
    }
    
    
    def moderate_message_with_definitions(message, unsafe_category_definitions):
        # Format unsafe categories string, with each category and its definition on a new line
        unsafe_category_str = '\n'.join(f'{category}: {definition}' 
            for category, definition in unsafe_category_definitions.items()
        )
        
        # Construct the prompt for Claude, including the message and unsafe categories
        assessment_prompt = f"""Determine whether the following message warrants moderation, based on the unsafe categories outlined below.
    
    Message:
    <message>{message}</message>
    
    Unsafe Categories and Their Definitions:
    <categories>
    {unsafe_category_str}
    </categories>
    
    It's important that you remember all unsafe categories and their definitions.
    
    Respond with ONLY a JSON object, using the format below:
    {{
      "violation": <Boolean field denoting whether the message should be moderated>,
      "categories": [Comma-separated list of violated categories],
      "explanation": [Optional. Only include if there is a violation.]
    }}"""
    
        # Send the request to Claude for content moderation
        response = client.messages.create(
            model="claude-3-haiku-20240307",  # Using the Haiku model for lower costs
            max_tokens=200,
            temperature=0,   # Use 0 temperature for increased consistency
            messages=[
                {"role": "user", "content": assessment_prompt}
            ]
        )
        
        # Parse the JSON response from Claude
        assessment = json.loads(response.content[0].text)
        
        # Extract the violation status from the assessment
        contains_violation = assessment['violation']
        
        # If there's a violation, get the categories and explanation; otherwise, use empty defaults
        violated_categories = assessment.get('categories', []) if contains_violation else []
        explanation = assessment.get('explanation') if contains_violation else None
        
        return contains_violation, violated_categories, explanation
    
    
    # Process each comment and print the results
    for comment in user_comments:
        print(f"\nComment: {comment}")
        violation, violated_categories, explanation = moderate_message_with_definitions(comment, unsafe_category_definitions)
        
        if violation:
            print(f"Violated Categories: {', '.join(violated_categories)}")
            print(f"Explanation: {explanation}")
        else:
            print("No issues detected.")

    La fonction moderate_message_with_definitions s'appuie sur la fonction moderate_message antérieure en permettant à chaque catégorie non sécurisée d'être associée à une définition détaillée. Cela se produit dans le code en remplaçant la liste unsafe_categories de la fonction d'origine par un dictionnaire unsafe_category_definitions. Ce dictionnaire mappe chaque catégorie non sécurisée à sa définition correspondante. Les noms de catégories et leurs définitions sont inclus dans l'invite.

    Notamment, la définition de la catégorie Specialized Advice spécifie maintenant les types de conseils financiers qui doivent être interdits. En conséquence, le commentaire It's a great time to invest in gold!, qui a précédemment réussi l'évaluation moderate_message, déclenche maintenant une violation.

    Considérer le traitement par lots

    Pour réduire les coûts dans les situations où la modération en temps réel n'est pas nécessaire, envisagez de modérer les messages par lots. Incluez plusieurs messages dans le contexte de l'invite et demandez à Claude d'évaluer quels messages doivent être modérés.

    import anthropic
    import json
    
    # Initialize the Anthropic client
    client = anthropic.Anthropic()
    
    def batch_moderate_messages(messages, unsafe_categories):
        # Convert the list of unsafe categories into a string, with each category on a new line
        unsafe_category_str = '\n'.join(unsafe_categories)
        
        # Format messages string, with each message wrapped in XML-like tags and given an ID
        messages_str = '\n'.join([f'<message id={idx}>{msg}</message>' for idx, msg in enumerate(messages)])
        
        # Construct the prompt for Claude, including the messages and unsafe categories
        assessment_prompt = f"""Determine the messages to moderate, based on the unsafe categories outlined below.
    
    Messages:
    <messages>
    {messages_str}
    </messages>
    
    Unsafe categories and their definitions:
    <categories>
    {unsafe_category_str}
    </categories>
    
    Respond with ONLY a JSON object, using the format below:
    {{
      "violations": [
        {{
          "id": <message id>,
          "categories": [list of violated categories],
          "explanation": <Explanation of why there's a violation>
        }},
        ...
      ]
    }}
    
    Important Notes:
    - Remember to analyze every message for a violation.
    - Select any number of violations that reasonably apply."""
    
        # Send the request to Claude for content moderation
        response = client.messages.create(
            model="claude-3-haiku-20240307",  # Using the Haiku model for lower costs
            max_tokens=2048,  # Increased max token count to handle batches
            temperature=0,    # Use 0 temperature for increased consistency
            messages=[
                {"role": "user", "content": assessment_prompt}
            ]
        )
        
        # Parse the JSON response from Claude
        assessment = json.loads(response.content[0].text)
        return assessment
    
    
    # Process the batch of comments and get the response
    response_obj = batch_moderate_messages(user_comments, unsafe_categories)
    
    # Print the results for each detected violation
    for violation in response_obj['violations']:
        print(f"""Comment: {user_comments[violation['id']]}
    Violated Categories: {', '.join(violation['categories'])}
    Explanation: {violation['explanation']}
    """)

    Dans cet exemple, la fonction batch_moderate_messages gère la modération d'un lot entier de messages avec un seul appel API Claude. À l'intérieur de la fonction, une invite est créée qui inclut la liste des messages à évaluer, les catégories de contenu non sécurisé définies et leurs descriptions. L'invite demande à Claude de retourner un objet JSON listant tous les messages qui contiennent des violations. Chaque message dans la réponse est identifié par son id, qui correspond à la position du message dans la liste d'entrée. Gardez à l'esprit que trouver la taille de lot optimale pour vos besoins spécifiques peut nécessiter une certaine expérimentation. Bien que des tailles de lot plus grandes puissent réduire les coûts, elles pourraient également entraîner une légère diminution de la qualité. De plus, vous devrez peut-être augmenter le paramètre max_tokens dans l'appel API Claude pour accommoder les réponses plus longues. Pour plus de détails sur le nombre maximum de jetons que votre modèle choisi peut générer, consultez la page de comparaison des modèles.

    Guide de modération de contenu
    • Coût des jetons d'entrée : 2 860 MTok * $0,25/MTok = $715
    • Coût des jetons de sortie : 1 500 MTok * $1,25/MTok = $1 875
    • Coût mensuel : $715 + $1 875 = $2 590
  1. Coût estimé de Claude Opus 4.6

    • Coût des jetons d'entrée : 2 860 MTok * $5,00/MTok = $14 300
    • Coût des jetons de sortie : 1 500 MTok * $25,00/MTok = $37 500
    • Coût mensuel : $14 300 + $37 500 = $51 800
  2. Consultez un exemple complet basé sur le code de la façon d'utiliser Claude pour la modération de contenu.

    Guide des garde-fous

    Explorez notre guide des garde-fous pour les techniques de modération des interactions avec Claude.