Partager via


Utiliser une liste de blocs

Attention

Les exemples de données de ce guide peuvent contenir du contenu offensant. Ils s’adressent à des utilisateurs avertis.

Les classifieurs IA par défaut sont suffisants pour la plupart des besoins de modération du contenu. Cependant, vous devrez peut-être rechercher des éléments spécifiques à votre cas d'utilisation. Les listes de blocage vous permettent d’ajouter des termes personnalisés aux classifieurs IA. Vous pouvez utiliser des listes de blocage pour filtrer des termes ou expressions spécifiques que vous souhaitez marquer dans votre contenu.

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le 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.
  • L'un des éléments suivants est installé :
    • cURL pour les appels d’API REST.
    • Python 3.x installé
      • Votre installation Python doit inclure pip. Vous pouvez vérifier si pip est installé en exécutant pip --version sur la ligne de commande. Procurez-vous pip en installant la dernière version de Python.
      • Si vous utilisez Python, vous devez installer la bibliothèque de client Azure AI Content Safety pour Python. Exécutez la commande pip install azure-ai-contentsafety dans votre répertoire de projet.
    • .NET Runtime installé.
      • Kit de développement logiciel (SDK) .NET Core installé.
      • Si vous utilisez .NET, vous devez installer la bibliothèque de client Azure AI Content Safety pour .NET. Exécutez la commande dotnet add package Azure.AI.ContentSafety --prerelease dans votre répertoire de projet.

Créer des variables d’environnement

Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.

Conseil

N’incluez pas la clé directement dans votre code et ne la publiez jamais publiquement. Pour découvrir d’autres options d’authentification telles qu’Azure Key Vault, veuillez consulter l’article sur la sécurité d’Azure AI services.

Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.

  1. Pour définir la variable d’environnement CONTENT_SAFETY_KEY, remplacez YOUR_CONTENT_SAFETY_KEY par l’une des clés de votre ressource.
  2. Pour définir la CONTENT_SAFETY_ENDPOINTvariable d’environnement, remplacez YOUR_CONTENT_SAFETY_ENDPOINT par le point de terminaison de votre ressource.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Après avoir ajouté les variables d'environnement, il se put que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.

Analysez le texte avec une liste de blocs

Vous pouvez créer des listes de blocs à utiliser avec l’API Texte. Les étapes suivantes vous aident à démarrer.

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 <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL) par un nom personnalisé pour votre liste. Remplacez également le dernier terme de l’URL REST par le même nom. Caractères autorisés : a-z, 0-9, A-Z, - . _ ~.
  4. Remplacez éventuellement la valeur du champ "description" par une description personnalisée.
curl --location --request PATCH '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "description": "This is a violence list"
}'

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

Ajouter des blocklistItems à la liste

Remarque

Il existe une limite maximale de 10 000 termes au total sur toutes les listes. Vous pouvez ajouter au maximum 100 éléments de liste de blocage en une seule requête.

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL) par le nom que vous avez utilisé à l’étape de création de la liste.
  4. Remplacez éventuellement la valeur du champ "description" par une description personnalisée.
  5. Remplacez la valeur du champ "text" par l’élément que vous souhaitez ajouter à votre liste de blocs. La longueur maximale d’un blocklistItem est de 128 caractères.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:addOrUpdateBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '"blocklistItems": [{
    "description": "string",
    "text": "bleed"
}]'

Conseil

Vous pouvez ajouter plusieurs blocklistItems dans un seul appel API. Faites du corps de la requête un tableau JSON de groupes de données :

{
   "blocklistItems": [
       {
           "description": "string",
           "text": "bleed"
       },
       {
           "description": "string",
           "text": "blood"
       }
   ]
}

Le code de réponse doit être 200.

{
"blocklistItems:"[
  {
  "blocklistItemId": "string",
  "description": "string",
  "text": "bleed"
  
   }
 ]
}

Notes

Il y aura un certain délai après l’ajout ou la modification d’un blockItem avant qu’il ne prenne effet sur l’analyse de texte, généralement pas plus de cinq minutes.

Analysez le texte avec une liste de blocs

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> par le nom que vous avez utilisé à l’étape de création de la liste. Le champ "blocklistNames" peut contenir un tableau de plusieurs ID de liste.
  4. Si vous le souhaitez, vous pouvez changer la valeur de "breakByBlocklists". true indique qu’une fois qu’une blocklist est mise en correspondance, l’analyse retourne immédiatement sans sortie du modèle. false entraîne la poursuite de l’analyse du modèle dans les catégories par défaut.
  5. Remplacez éventuellement la valeur du champ "text" par le texte que vous souhaitez analyser.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2023-10-01&' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "text": "I want to beat you till you bleed",
  "categories": [
    "Hate",
    "Sexual",
    "SelfHarm",
    "Violence"
  ],
  "blocklistNames":["<your_list_name>"],
  "haltOnBlocklistHit": false,
  "outputType": "FourSeverityLevels"
}'

La réponse JSON contient un "blocklistMatchResults" qui indique toute correspondance avec votre blocklist. Il signale l’emplacement dans la chaîne de texte où la correspondance a été trouvée.

{
  "blocklistsMatch": [
    {
      "blocklistName": "string",
      "blocklistItemId": "string",
      "blocklistItemText": "bleed"
    }
  ],
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 0
    }
  ]
}

Autres opérations de la blocklist

Cette section contient d’autres opérations pour vous aider à gérer et à utiliser la fonctionnalité blocklist.

Répertorier tous les éléments de liste de blocage dans une liste

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL de la requête) par le nom que vous avez utilisé à l’étape de création de la liste.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists/<your_list_name>/blocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

Le code d’état doit être 200 et le corps de la réponse doit ressembler à ceci :

{
 "values": [
  {
   "blocklistItemId": "string",
   "description": "string",
   "text": "bleed",
  }
 ]
}

Afficher toutes les listes de refus

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

Le code d’état doit être 200. La réponse JSON ressemble à ceci :

"value": [
  {
    "blocklistName": "string",
    "description": "string"
  }
]

Obtenez une liste de blocage par blocklistName

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL de la requête) par le nom que vous avez utilisé à l’étape de création de la liste.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Le code d’état doit être 200. La réponse JSON ressemble à ceci :

{
  "blocklistName": "string",
  "description": "string"
}

Obtenez un blocklistItem par blocklistName et blocklistItemId

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL de la requête) par le nom que vous avez utilisé à l’étape de création de la liste.
  4. Remplacez <your_item_id> par la valeur ID du blocklistItem. Il s'agit de la valeur du champ "blocklistItemId" provenant des appels d'API Ajouter blocklistItem ou Obtenez tous les blocklistItems.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>/blocklistItems/<your_item_id>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Le code d’état doit être 200. La réponse JSON ressemble à ceci :

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Remplacez <your_list_name> par le nom que vous avez utilisé à l’étape de création de la liste.
  2. Remplacez <your_block_item_id> par l’ID de l’élément que vous voulez obtenir.
  3. Exécutez le script.

Supprimez les blocklistItems d'une liste de blocage.

Remarque

Il y aura un certain délai après la suppression d’un blockItem avant qu’il ne prenne effet sur l’analyse de texte, généralement pas plus de cinq minutes.

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL de la requête) par le nom que vous avez utilisé à l’étape de création de la liste.
  4. Remplacez <item_id> par la valeur ID du blocklistItem. Il s'agit de la valeur du champ "blocklistItemId" provenant des appels d'API Ajouter blocklistItem ou Obtenez tous les blocklistItems.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
--data-raw '"blocklistItemIds":[
    "<item_id>"
]'

Conseil

Vous pouvez supprimer plusieurs blocklistItems en un seul appel API. Faites du corps de la requête un tableau de valeurs blocklistItemId.

Le code de réponse doit être 204.

Supprimer une liste et tout son contenu.

Notes

Il y aura un certain délai après la suppression d’une liste avant que cela ne prenne effet sur l’analyse de texte, généralement pas plus de cinq minutes.

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

  1. Remplacez <endpoint> par votre URL de point de terminaison.
  2. Remplacez <enter_your_key_here> par votre clé.
  3. Remplacez <your_list_name> (dans l’URL de la requête) par le nom que vous avez utilisé à l’étape de création de la liste.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \

Le code de réponse doit être 204.

Étapes suivantes

Consultez la documentation de référence sur les API pour en savoir plus sur les API utilisées dans ce guide.