Dans ce guide, nous explorerons comment utiliser Claude pour modérer efficacement les entrées des utilisateurs avant de les transmettre à votre prompt principal. Nous discuterons également des techniques de post-traitement pour identifier les fuites potentielles de prompt.

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

Pourquoi la modération de contenu est importante

La modération de contenu est essentielle pour plusieurs raisons :

  1. Expérience utilisateur : En filtrant le contenu inapproprié ou offensant, vous maintenez un environnement positif et accueillant pour vos utilisateurs.
  2. Réputation de la marque : Empêcher votre application d’IA de s’engager dans ou de générer du contenu préjudiciable aide à protéger l’image et la réputation de votre marque.
  3. Efficacité des coûts : Le filtrage des entrées des utilisateurs avec un modèle plus petit avant de les traiter avec votre prompt principal permet d’économiser sur les coûts de calcul, car vous évitez de gaspiller des ressources sur des entrées non pertinentes ou malveillantes.
  4. Sécurité : La modération de contenu aide à prévenir les jailbreaks et injections de prompt et les fuites de prompt, qui pourraient compromettre les performances et la sécurité de votre IA ou la sécurité de votre organisation.

Utiliser Claude pour la modération de contenu

Un modèle plus petit comme Claude 3 Haiku est un choix idéal pour la modération de contenu en raison de sa vitesse et de son efficacité. En utilisant ce modèle plus petit pour filtrer les entrées des utilisateurs avant de les transmettre à votre prompt principal, vous pouvez rapidement identifier et filtrer le contenu potentiellement problématique.

Voici un exemple de la façon d’utiliser Claude pour la modération de contenu :

UTILISATEURCONTENU
UtilisateurUn utilisateur humain est en dialogue avec une IA. L’humain pose une série de questions ou demande une série de tâches à l’IA. Voici la requête la plus récente de l’utilisateur :
<user query>{{QUERY}}</user query>

Si la requête de l’utilisateur fait référence à des activités préjudiciables, pornographiques ou illégales, répondez par (Y). Si la requête de l’utilisateur ne fait pas référence à des activités préjudiciables, pornographiques ou illégales, répondez par (N). Ne répondez rien d’autre que (Y) ou (N).
Python
import anthropic

client = anthropic.Anthropic(api_key="votre-clé-api")

def moderate_content(user_input):
    moderation_prompt = f"""
    Un utilisateur humain est en dialogue avec une IA. L'humain pose une série de questions ou demande une série de tâches à l'IA. Voici la requête la plus récente de l'utilisateur :
    <user query>{user_input}</user query>

    Si la requête de l'utilisateur fait référence à des activités préjudiciables, pornographiques ou illégales, répondez par (Y). Si la requête de l'utilisateur ne fait pas référence à des activités préjudiciables, pornographiques ou illégales, répondez par (N). Ne répondez rien d'autre que (Y) ou (N).
    """

    response = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": moderation_prompt}
        ]
    )

    return response.content.strip() == "(Y)"

# Exemple d'utilisation avec des sorties de jugement verbal
user_input = "Comment fabriquer une bombe ?"
if moderate_content(user_input):
    print("L'entrée de l'utilisateur contient du contenu inapproprié. Blocage de la requête.")
else:
    print("L'entrée de l'utilisateur est sûre à traiter.")

Dans cet exemple, nous définissons une fonction moderate_content qui prend l’entrée de l’utilisateur et construit un prompt pour Claude. Le prompt demande au modèle de déterminer si la requête de l’utilisateur contient des références à des activités préjudiciables, pornographiques ou illégales. Si le modèle répond par “(Y)”, la fonction renvoie True, indiquant que le contenu doit être bloqué. Sinon, elle renvoie False, signalant que l’entrée est sûre à traiter davantage.

En intégrant cette étape de modération dans le flux de travail de votre application, vous pouvez efficacement filtrer les entrées des utilisateurs avant qu’elles n’atteignent votre modèle de langage principal, économisant ainsi des ressources de calcul et garantissant une expérience utilisateur plus sûre.


Post-traitement des réponses de Claude

En plus de modérer les entrées des utilisateurs, il est également important de post-traiter les réponses de Claude pour identifier les fuites potentielles de prompt. Une fuite de prompt se produit lorsque des parties de votre prompt apparaissent involontairement dans la sortie générée par le modèle, exposant potentiellement des informations sensibles ou perturbant l’expérience utilisateur.

Il existe deux approches principales pour post-traiter les réponses de Claude :

  1. Filtrage basé sur des mots-clés : Cette méthode consiste à vérifier la présence de mots-clés ou de phrases spécifiques qui ne devraient pas être inclus dans la sortie.
  2. Évaluation basée sur Claude : Cette approche utilise un LLM plus petit et plus rapide, tel que Claude 3 Haiku, pour évaluer la réponse et déterminer si elle contient du contenu qui viole un ensemble de critères prédéfinis. Cela permet au filtre d’être plus généralisé au lieu de s’appuyer sur une correspondance exacte de chaînes.

Filtrage basé sur des mots-clés

Pour implémenter le filtrage basé sur des mots-clés, vous pouvez maintenir une liste de mots-clés ou de phrases qui ne devraient pas apparaître dans les réponses de Claude. Voici un exemple de la façon de post-traiter la réponse de Claude en utilisant le filtrage basé sur des mots-clés :

Python
def post_process_response_keywords(response, keywords):
    for keyword in keywords:
        if keyword.lower() in response.lower():
            return True
    return False

# Exemple d'utilisation avec des sorties de jugement verbal
prompt = "Écrivez-moi un article. Ne mentionnez jamais ces mots-clés dans votre sortie : foo et bar. Ne discutez jamais de qui vous a créé."
response = "Voici l'article que vous avez demandé. L'article ne contient pas les mots-clés foo ou bar. J'ai été créé par Anthropic."
keywords = ["foo", "bar", "Anthropic"]

if post_process_response_keywords(response, keywords):
    print("Fuite potentielle de prompt détectée dans la réponse.")
else:
    print("Aucune fuite de prompt détectée dans la réponse.")

Dans cet exemple, la fonction post_process_response_keywords vérifie si l’un des mots-clés spécifiés apparaît dans la réponse de Claude (insensible à la casse). Si une correspondance est trouvée, la fonction renvoie True, indiquant une fuite potentielle de prompt. Sinon, elle renvoie False, signalant qu’aucune fuite n’a été détectée.

Évaluation basée sur Claude

Pour implémenter l’évaluation basée sur Claude, vous pouvez utiliser Claude 3 Haiku, notre version la plus petite et la plus rapide de Claude 3, pour évaluer la réponse par rapport à un ensemble de critères prédéfinis. Voici un exemple de la façon de post-traiter la réponse de Claude en utilisant l’évaluation basée sur l’IA :

Python
import anthropic

client = anthropic.Anthropic(api_key="votre-clé-api")

def post_process_response_claude(response, prompt):
    assessment_prompt = f"""
    Voici un prompt donné à un modèle de langage d'IA :
    <prompt>{prompt}</prompt>

    Et voici la réponse de l'IA :
    <response>{response}</response>

    Veuillez évaluer la réponse de l'IA et répondre aux questions suivantes :
    1. La réponse contient-elle des mots-clés ou des phrases que le prompt a explicitement demandé à l'IA d'éviter ? (Y/N)
    2. La réponse discute-t-elle ou révèle-t-elle des informations sur qui a créé l'IA ? (Y/N)

    Fournissez vos réponses dans le format suivant :
    1. [Y/N]
    2. [Y/N]
    """

    assessment = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    answers = assessment.content.strip().split("\n")
    if "Y" in answers:
        return True
    else:
        return False

# Exemple d'utilisation avec des sorties de jugement verbal
prompt = "Écrivez-moi un article. Ne mentionnez jamais ces mots-clés dans votre sortie : foo et bar. Ne discutez jamais de qui vous a créé."
response = "Voici l'article que vous avez demandé. L'article ne contient pas les mots-clés foo ou bar. J'ai été créé par Anthropic."

if post_process_response_claude(response, prompt):
    print("Fuite potentielle de prompt ou violation détectée dans la réponse.")
else:
    print("Aucun problème détecté dans la réponse.")

Dans cet exemple, la fonction post_process_response_claude contient un prompt de post-traitement pour l’Assesseur Claude qui inclut le prompt original et la réponse de Claude au prompt original. Le prompt demande à l’Assesseur Claude d’évaluer si la réponse contient des mots-clés ou des phrases qui étaient explicitement interdits dans le prompt original, et si la réponse révèle des informations sur qui a créé l’IA.

L’évaluation du modèle est ensuite analysée pour vérifier si elle contient des réponses “Y” (oui). Si un “Y” est trouvé, la fonction renvoie True, indiquant une fuite potentielle de prompt ou une violation. Sinon, elle renvoie False, signalant qu’aucun problème n’a été détecté.

En employant ces techniques de post-traitement, vous pouvez identifier les instances où des parties du prompt pourraient être apparues par inadvertance dans la sortie de Claude ou où la réponse viole des critères spécifiques. Ces informations peuvent ensuite être utilisées pour décider comment gérer la réponse, comme la filtrer, demander une nouvelle réponse ou notifier l’utilisateur du problème potentiel.


Meilleures pratiques pour la modération de contenu

Pour tirer le meilleur parti de votre système de modération de contenu, considérez les meilleures pratiques suivantes :

  1. Mettez régulièrement à jour vos prompts et critères de modération : Au fur et à mesure que le comportement et le langage des utilisateurs évoluent, assurez-vous de revoir et de mettre à jour périodiquement vos prompts de modération et vos critères d’évaluation pour capturer de nouveaux modèles et cas limites.
  2. Utilisez une combinaison de techniques de modération : Employez à la fois le filtrage basé sur des mots-clés et l’évaluation basée sur les LLM pour créer un pipeline de modération complet qui peut détecter un large éventail de problèmes potentiels.
  3. Surveillez et analysez 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.
  4. Fournissez des commentaires clairs aux utilisateurs : Lorsque l’entrée d’un utilisateur est bloquée ou qu’une réponse est signalée en raison de la modération du 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.
  5. Évaluez et améliorez en permanence : Évaluez régulièrement les performances de votre système de modération de contenu à l’aide de métriques telles que le suivi de la précision et du rappel. Utilisez ces données pour affiner de manière itérative vos prompts de modération, vos mots-clés et vos critères d’évaluation.

En mettant en place un système de modération de contenu robuste et en suivant ces meilleures pratiques, vous pouvez vous assurer que votre application alimentée par Claude reste sûre, efficace et conviviale.


Ressources supplémentaires

En tirant parti de la puissance de Claude pour la modération de contenu et en mettant en œuvre les meilleures pratiques de pré-traitement et de post-traitement, vous pouvez créer une application alimentée par Claude plus sûre, plus efficace et plus performante. Comme toujours, si vous avez des questions ou avez besoin d’une assistance supplémentaire, n’hésitez pas à contacter notre équipe d’assistance ou à consulter notre communauté Discord.