Partager via


Utiliser une liste de blocage dans Azure OpenAI

Les filtres de contenu configurables sont suffisants pour la plupart des besoins de modération du contenu. Toutefois, vous devrez peut-être filtrer des termes spécifiques à votre cas d’usage.

Prérequis

  • Un abonnement Azure. Créez-en un gratuitement.
  • Une fois que vous disposez de votre abonnement Azure, créez une ressource Azure OpenAI dans le portail Azure pour obtenir votre jeton, votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez l’abonnement que vous avez indiqué dans le formulaire d’inscription, sélectionnez un groupe de ressources, une région prise en charge et un niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
    • Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
  • Azure CLI installé
  • Installation de cURL

Utiliser des listes de blocage

Vous pouvez créer des listes de blocage avec l’API Azure OpenAI. Les étapes suivantes vous aident à démarrer.

Obtenir votre jeton

Tout d’abord, vous devez obtenir un jeton pour accéder aux API de création, de modification et de suppression de listes de blocage. Vous pouvez obtenir ce jeton en utilisant la commande Azure CLI suivante :

az account get-access-token 

Créez ou modifiez une liste de blocs

Copiez la commande cURL ci-dessous dans un éditeur de texte et apportez les modifications suivantes :

  1. Remplacez {subscriptionId} par votre ID d’abonnement.
  2. Remplacez {resourceGroupName} par le nom de votre groupe de ressources.
  3. Remplacez {accountName} par le nom de votre ressource.
  4. Remplacez {raiBlocklistName} (dans l’URL) par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~.
  5. Remplacez {token} par le jeton obtenu à l’étape « Obtenir votre jeton » ci-dessus.
  6. Remplacez éventuellement la valeur du champ « description » par une description personnalisée.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "description": "This is a prompt blocklist"  
    } 
}' 

Le code de réponse doit être 201 (création d’une liste) ou 200 (mise à jour d’une liste existante).

Appliquer une liste de blocage à un filtre de contenu

Si vous n’avez pas encore créé de filtre de contenu, vous pouvez le faire dans Studio, sous l’onglet Filtres de contenu sur le côté gauche. Pour utiliser la liste de blocage, vérifiez que ce filtre de contenu est appliqué à un déploiement Azure OpenAI. Pour ce faire, accédez à l’onglet Déploiements sur le côté gauche.

Pour appliquer une liste de blocage de complétion à un filtre de contenu, utilisez la commande cURL suivante :

  1. Remplacez {subscriptionId} par votre ID d’abonnement.
  2. Remplacez {resourceGroupName} par le nom de votre groupe de ressources.
  3. Remplacez {accountName} par le nom de votre ressource.
  4. Remplacez {raiPolicyName} par le nom de votre filtre de contenu
  5. Remplacez {token} par le jeton obtenu à l’étape « Obtenir votre jeton » ci-dessus.
  6. Remplacez « raiBlocklistName » dans le corps par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "basePolicyName": "Microsoft.Default", 
        "completionBlocklists": [{ 
            "blocklistName": "raiBlocklistName", 
            "blocking": true 
        }], 
        "contentFilters": [ ] 
    } 
}' 

Ajouter des blockItems à la liste

Remarque

Il existe une limite maximale de 10 000 termes autorisés dans une liste.

Copiez la commande cURL ci-dessous dans un éditeur de texte et apportez les modifications suivantes :

  1. Remplacez {subscriptionId} par votre ID d’abonnement.
  2. Remplacez {resourceGroupName} par le nom de votre groupe de ressources.
  3. Remplacez {accountName} par le nom de votre ressource.
  4. Remplacez {raiBlocklistName} (dans l’URL) par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~.
  5. Remplacez {raiBlocklistItemName} par un nom personnalisé pour votre élément de liste.
  6. Remplacez {token} par le jeton obtenu à l’étape « Obtenir votre jeton » ci-dessus.
  7. Remplacez la valeur du champ "blocking pattern" par l’élément que vous souhaitez ajouter à votre liste de blocs. La longueur maximale d’un blockItem est de 1 000 caractères. Spécifiez également s’il s’agit d’un modèle regex ou d’une recherche exacte.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{  
    "properties": {  
        "pattern": "blocking pattern",  
        "isRegex": false  
    }  
}' 

Remarque

L’ajout d’un nouveau terme à la liste de blocage prend environ 5 minutes. Effectuez un test après 5 minutes.

Le code de réponse doit être 200.

{ 
  "name": "raiBlocklistItemName", 
  "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName", 
  "properties": { 
    "pattern": "blocking pattern", 
    "isRegex": false 
  } 
} 

Analysez le texte avec une liste de blocs

Vous pouvez désormais tester votre déploiement associé à la liste de blocage. Le moyen le plus simple d’y parvenir consiste à utiliser Azure OpenAI Studio. Si le contenu a été bloqué au niveau de l’invite ou de la complétion, vous devez voir un message d’erreur indiquant que le système de filtrage de contenu s’est déclenché.

Pour obtenir des instructions sur l’appel des points de terminaison Azure OpenAI, consultez le guide de démarrage rapide.

Dans l’exemple ci-dessous, un déploiement de GPT-35-Turbo associé à une liste de blocage bloque l’invite. La réponse retourne une erreur 400.

{ 
    "error": { 
        "message": "The response was filtered due to the prompt triggering Azure OpenAI’s content management policy. Please modify your prompt and retry. To learn more about our content filtering policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766", 
        "type": null, 
        "param": "prompt", 
        "code": "content_filter", 
        "status": 400, 
        "innererror": { 
            "code": "ResponsibleAIPolicyViolation", 
            "content_filter_result": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "raiBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    } 
} 

Si la complétion elle-même est bloquée, la réponse retourne 200, car la complétion est désactivée uniquement quand il existe une correspondance avec le contenu de la liste de blocage. Les annotations montrent qu’il existe une correspondance avec une liste de blocage.

{ 
    "id": "chatcmpl-85NkyY0AkeBMunOjyxivQSiTaxGAl", 
    "object": "chat.completion", 
    "created": 1696293652, 
    "model": "gpt-35-turbo", 
    "prompt_filter_results": [ 
        { 
            "prompt_index": 0, 
            "content_filter_results": { 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "choices": [ 
        { 
            "index": 0, 
            "finish_reason": "content_filter", 
            "message": { 
                "role": "assistant" 
            }, 
            "content_filter_results": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "myBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "usage": { 
        "completion_tokens": 75, 
        "prompt_tokens": 27, 
        "total_tokens": 102 
    } 
} 

Utiliser des listes de blocage dans Azure OpenAI Studio

Vous pouvez également créer des listes de blocage personnalisées dans Azure OpenAI Studio dans le cadre de vos configurations de filtrage de contenu (préversion publique). Vous trouverez des instructions sur la création de filtres de contenu personnalisés ici. Les étapes suivantes montrent comment créer des listes de blocage personnalisées dans le cadre de vos filtres de contenu via Azure OpenAI Studio.

  1. Sélectionnez Filtres de contenu dans le menu de gauche. Sélectionnez l’onglet Listes de blocage en regard à côté de l’onglet Filtres de contenu. Sélectionnez ensuite Créer une liste de blocage. Capture d’écran de la sélection de la création d’une liste de blocage.
  2. Créez un nom pour votre liste de blocage, ajoutez une description, puis sélectionnez Créer la liste de blocage. Capture d’écran du nom et de la description de la liste de blocage.
  3. Sélectionnez votre liste de blocage personnalisée une fois qu’elle a été créée, puis sélectionnez Ajouter nouveau terme. Capture d’écran d’ajout de terme dans une liste de blocage personnalisée.
  4. Ajoutez un terme à filtrer, puis sélectionnez Ajouter. Vous pouvez également créer une notation regex. Capture d’écran d’ajout d’élément dans une liste de blocage personnalisée.
  5. Tout terme contenu dans votre liste de blocage peut être supprimé. Capture d’écran de la modification d’une liste de blocage personnalisée.
  6. Une fois la liste de blocage prête, accédez à la section Filtres de contenu (préversion), puis créez une configuration de filtre de contenu personnalisée. Un Assistant s’ouvre avec plusieurs composants d’AI Sécurité du Contenu. Vous trouverez plus d’informations sur la configuration des filtres principaux et des modèles facultatifs ici. Accédez à Ajouter une liste de blocage (facultatif).
  7. Vous voyez désormais toutes les listes de blocage disponibles. Il existe deux types de listes de blocage : les listes de blocage que vous avez créées et les listes de blocage prédéfinies fournies par Microsoft, dans le cas présent une liste de blocage d’obscénités (en anglais)
  8. Vous pouvez maintenant déterminer les listes de blocs disponibles que vous souhaitez inclure dans votre configuration de filtrage de contenu. Dans l’exemple ci-dessous, la liste appliquée est CustomBlocklist1, que nous venons de créer. La dernière étape consiste à passer en revue et à finir la configuration du filtrage de contenu en cliquant sur Suivant. Capture d’écran de la gestion de la configuration du filtrage.
  9. Vous pouvez toujours revenir en arrière et modifier votre configuration. Une fois que tout est prêt, sélectionnez Créer un filtre de contenu. La nouvelle configuration qui inclut vos listes de blocage peut désormais être appliquée à un déploiement. Des instructions détaillées sont disponibles ici .

Étapes suivantes