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.
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.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY
, remplacez YOUR_CONTENT_SAFETY_KEY
par l’une des clés de votre ressource.
- Pour définir la
CONTENT_SAFETY_ENDPOINT
variable d’environnement, remplacez YOUR_CONTENT_SAFETY_ENDPOINT
par le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la de façon sécurisée dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée de clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les demandes auprès d’Azure AI services.
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.
export CONTENT_SAFETY_KEY='YOUR_CONTENT_SAFETY_KEY'
export CONTENT_SAFETY_ENDPOINT='YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d’environnement, exécutez source ~/.bashrc
à partir de la fenêtre de console pour appliquer les changements.
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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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, - . _ ~
.
- 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=2024-09-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).
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var blocklistDescription = "<description>";
var data = new
{
description = blocklistDescription,
};
var createResponse = blocklistClient.CreateOrUpdateTextBlocklist(blocklistName, RequestContent.Create(data));
if (createResponse.Status == 201)
{
Console.WriteLine("\nBlocklist {0} created.", blocklistName);
}
else if (createResponse.Status == 200)
{
Console.WriteLine("\nBlocklist {0} updated.", blocklistName);
}
- Remplacez
<your_list_name>
par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~
.
- Remplacez éventuellement
<description>
par une description personnalisée.
- Exécutez le code.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
Map<String, String> description = new HashMap<>();
description.put("description", "<description>");
BinaryData resource = BinaryData.fromObject(description);
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
blocklistClient.createOrUpdateTextBlocklistWithResponse(blocklistName, resource, requestOptions);
if (response.getStatusCode() == 201) {
System.out.println("\nBlocklist " + blocklistName + " created.");
} else if (response.getStatusCode() == 200) {
System.out.println("\nBlocklist " + blocklistName + " updated.");
}
- Remplacez
<your_list_name>
par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~
.
- Remplacez éventuellement
<description>
par une description personnalisée.
- Exécutez le code.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import TextBlocklist
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_description = "<description>"
try:
blocklist = client.create_or_update_text_blocklist(
blocklist_name=blocklist_name,
options=TextBlocklist(blocklist_name=blocklist_name, description=blocklist_description),
)
if blocklist:
print("\nBlocklist created or updated: ")
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nCreate or update text blocklist failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~
.
- Remplacez
<description>
par une description personnalisée.
- Exécutez le script.
Créez un script JavaScript et ouvrez-le dans l’éditeur ou IDE de votre choix. Collez le code suivant.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function createOrUpdateTextBlocklist() {
const blocklistName = "<your_list_name>";
const blocklistDescription = "<description>";
const createOrUpdateTextBlocklistParameters = {
contentType: "application/merge-patch+json",
body: {
description: blocklistDescription,
},
};
const result = await client
.path("/text/blocklists/{blocklistName}", blocklistName)
.patch(createOrUpdateTextBlocklistParameters);
if (isUnexpected(result)) {
throw result;
}
console.log(
"Blocklist created or updated. Name: ",
result.body.blocklistName,
", Description: ",
result.body.description
);
}
(async () => {
await createOrUpdateTextBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par un nom personnalisé pour votre liste. Caractères autorisés : 0-9, A-Z, a-z, - . _ ~
.
- Remplacez éventuellement
<description>
par une description personnalisée.
- Exécutez le script.
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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- Remplacez
<your_list_name>
(dans l’URL) par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez éventuellement la valeur du champ
"description"
par une description personnalisée.
- 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=2024-09-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"
}
]
}
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
string blocklistItemText1 = "<block_item_text_1>";
string blocklistItemText2 = "<block_item_text_2>";
var blocklistItems = new TextBlocklistItem[] { new TextBlocklistItem(blocklistItemText1), new TextBlocklistItem(blocklistItemText2) };
var addedBlocklistItems = blocklistClient.AddOrUpdateBlocklistItems(blocklistName, new AddOrUpdateTextBlocklistItemsOptions(blocklistItems));
if (addedBlocklistItems != null && addedBlocklistItems.Value != null)
{
Console.WriteLine("\nBlocklistItems added:");
foreach (var addedBlocklistItem in addedBlocklistItems.Value.BlocklistItems)
{
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", addedBlocklistItem.BlocklistItemId, addedBlocklistItem.Text, addedBlocklistItem.Description);
}
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez les valeurs des champs
blocklistItemText1
et blocklistItemText2
par les éléments que vous souhaitez ajouter à votre liste de refus. La longueur maximale d’un blockitem est de 128 caractères.
- Ajoutez éventuellement d’autres chaînes blockItem au paramètre
blockItems
.
- Exécutez le code.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String blockItemText1 = "<block_item_text_1>";
String blockItemText2 = "<block_item_text_2>";
List<TextBlocklistItem> blockItems = Arrays.asList(new TextBlocklistItem(blockItemText1).setDescription("Kill word"),
new TextBlocklistItem(blockItemText2).setDescription("Hate word"));
AddOrUpdateTextBlocklistItemsResult addedBlockItems = blocklistClient.addOrUpdateBlocklistItems(blocklistName,
new AddOrUpdateTextBlocklistItemsOptions(blockItems));
if (addedBlockItems != null && addedBlockItems.getBlocklistItems() != null) {
System.out.println("\nBlockItems added:");
for (TextBlocklistItem addedBlockItem : addedBlockItems.getBlocklistItems()) {
System.out.println("BlockItemId: " + addedBlockItem.getBlocklistItemId() + ", Text: " + addedBlockItem.getText() + ", Description: " + addedBlockItem.getDescription());
}
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez les valeurs des champs
blockItemText1
et blockItemText2
par les éléments que vous souhaitez ajouter à votre liste de refus. La longueur maximale d’un blockitem est de 128 caractères.
- Ajoutez éventuellement d’autres chaînes blockItem au paramètre
blockItems
.
- Exécutez le code.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import (
AddOrUpdateTextBlocklistItemsOptions, TextBlocklistItem
)
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text_1>"
blocklist_item_text_2 = "<block_item_text_2>"
blocklist_items = [TextBlocklistItem(text=blocklist_item_text_1), TextBlocklistItem(text=blocklist_item_text_2)]
try:
result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name, options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=blocklist_items))
for blocklist_item in result.blocklist_items:
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nAdd blocklistItems failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez les valeurs des champs
blocklist_item_text_1
et blocklist_item_text_2
par les éléments que vous souhaitez ajouter à votre liste de refus. La longueur maximale d’un blockitem est de 128 caractères.
- Ajoutez éventuellement d’autres chaînes blockItem au paramètre
block_items
.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function addBlocklistItems() {
const blocklistName = "<your_list_name>";
const blocklistItemText1 = "<block_item_text_1>";
const blocklistItemText2 = "<block_item_text_2>";
const addOrUpdateBlocklistItemsParameters = {
body: {
blocklistItems: [
{
description: "Test blocklist item 1",
text: blocklistItemText1,
},
{
description: "Test blocklist item 2",
text: blocklistItemText2,
},
],
},
};
const result = await client
.path("/text/blocklists/{blocklistName}:addOrUpdateBlocklistItems", blocklistName)
.post(addOrUpdateBlocklistItemsParameters);
if (isUnexpected(result)) {
throw result;
}
console.log("Blocklist items added: ");
if (result.body.blocklistItems) {
for (const blocklistItem of result.body.blocklistItems) {
console.log(
"BlocklistItemId: ",
blocklistItem.blocklistItemId,
", Text: ",
blocklistItem.text,
", Description: ",
blocklistItem.description
);
}
}
}
(async () => {
await addBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez les valeurs des champs
block_item_text_1
et block_item_text_2
par les éléments que vous souhaitez ajouter à votre liste de refus. La longueur maximale d’un blockitem est de 128 caractères.
- Ajoutez éventuellement d’autres chaînes blockItem au paramètre
blocklistItems
.
- Exécutez le script.
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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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.
- 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.
- Remplacez éventuellement la valeur du champ
"text"
par le texte que vous souhaitez analyser.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2024-09-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
}
]
}
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
ContentSafetyClient client = new ContentSafetyClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
// After you edit your blocklist, it usually takes effect in 5 minutes, please wait some time before analyzing with blocklist after editing.
var request = new AnalyzeTextOptions("<your_input_text>");
request.BlocklistNames.Add(blocklistName);
request.HaltOnBlocklistHit = true;
Response<AnalyzeTextResult> response;
try
{
response = client.AnalyzeText(request);
}
catch (RequestFailedException ex)
{
Console.WriteLine("Analyze text failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
throw;
}
if (response.Value.BlocklistsMatch != null)
{
Console.WriteLine("\nBlocklist match result:");
foreach (var matchResult in response.Value.BlocklistsMatch)
{
Console.WriteLine("BlocklistName: {0}, BlocklistItemId: {1}, BlocklistText: {2}, ", matchResult.BlocklistName, matchResult.BlocklistItemId, matchResult.BlocklistItemText);
}
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez le texte d’entrée
request
par le texte que vous souhaitez analyser.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
ContentSafetyClient contentSafetyClient = new ContentSafetyClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
AnalyzeTextOptions request = new AnalyzeTextOptions("<sample_text>");
request.setBlocklistNames(Arrays.asList(blocklistName));
request.setHaltOnBlocklistHit(true);
AnalyzeTextResult analyzeTextResult;
try {
analyzeTextResult = contentSafetyClient.analyzeText(request);
} catch (HttpResponseException ex) {
System.out.println("Analyze text failed.\nStatus code: " + ex.getResponse().getStatusCode() + ", Error message: " + ex.getMessage());
throw ex;
}
if (analyzeTextResult.getBlocklistsMatch() != null) {
System.out.println("\nBlocklist match result:");
for (TextBlocklistMatch matchResult : analyzeTextResult.getBlocklistsMatch()) {
System.out.println("BlocklistName: " + matchResult.getBlocklistName() + ", BlockItemId: " + matchResult.getBlocklistItemId() + ", BlockItemText: " + matchResult.getBlocklistItemText());
}
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez le texte d’entrée
request
par le texte que vous souhaitez analyser.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import ContentSafetyClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import AnalyzeTextOptions
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Content Safety client
client = ContentSafetyClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
input_text = "<your_input_text>"
try:
# After you edit your blocklist, it usually takes effect in 5 minutes, please wait some time before analyzing
# with blocklist after editing.
analysis_result = client.analyze_text(
AnalyzeTextOptions(text=input_text, blocklist_names=[blocklist_name], halt_on_blocklist_hit=False)
)
if analysis_result and analysis_result.blocklists_match:
print("\nBlocklist match results: ")
for match_result in analysis_result.blocklists_match:
print(
f"BlocklistName: {match_result.blocklist_name}, BlocklistItemId: {match_result.blocklist_item_id}, "
f"BlocklistItemText: {match_result.blocklist_item_text}"
)
except HttpResponseError as e:
print("\nAnalyze text failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez la variable
input_text
par le texte que vous souhaitez analyser.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function analyzeTextWithBlocklists() {
const blocklistName = "<your_list_name>";
const inputText = "<your_input_text>";
const analyzeTextParameters = {
body: {
text: inputText,
blocklistNames: [blocklistName],
haltOnBlocklistHit: false,
},
};
const result = await client.path("/text:analyze").post(analyzeTextParameters);
if (isUnexpected(result)) {
throw result;
}
console.log("Blocklist match results: ");
if (result.body.blocklistsMatch) {
for (const blocklistMatchResult of result.body.blocklistsMatch) {
console.log(
"BlocklistName: ",
blocklistMatchResult.blocklistName,
", BlocklistItemId: ",
blocklistMatchResult.blocklistItemId,
", BlocklistItemText: ",
blocklistMatchResult.blocklistItemText
);
}
}
}
(async () => {
await analyzeTextWithBlocklists();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez la variable
inputText
par le texte que vous souhaitez analyser.
- Exécutez le script.
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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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=2024-09-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",
}
]
}
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var allBlocklistitems = blocklistClient.GetTextBlocklistItems(blocklistName);
Console.WriteLine("\nList BlocklistItems:");
foreach (var blocklistItem in allBlocklistitems)
{
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", blocklistItem.BlocklistItemId, blocklistItem.Text, blocklistItem.Description);
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
PagedIterable<TextBlocklistItem> allBlockitems = blocklistClient.listTextBlocklistItems(blocklistName);
System.out.println("\nList BlockItems:");
for (TextBlocklistItem blocklistItem : allBlockitems) {
System.out.println("BlockItemId: " + blocklistItem.getBlocklistItemId() + ", Text: " + blocklistItem.getText() + ", Description: " + blocklistItem.getDescription());
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
blocklist_items = client.list_text_blocklist_items(blocklist_name=blocklist_name)
if blocklist_items:
print("\nList blocklist items: ")
for blocklist_item in blocklist_items:
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, "
f"Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nList blocklist items failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function listBlocklistItems() {
const blocklistName = "<your_list_name>";
const result = await client
.path("/text/blocklists/{blocklistName}/blocklistItems", blocklistName)
.get();
if (isUnexpected(result)) {
throw result;
}
console.log("List blocklist items: ");
if (result.body.value) {
for (const blocklistItem of result.body.value) {
console.log(
"BlocklistItemId: ",
blocklistItem.blocklistItemId,
", Text: ",
blocklistItem.text,
", Description: ",
blocklistItem.description
);
}
}
}
(async () => {
await listBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Afficher toutes les listes de refus
Copiez la commande cURL ci-dessous dans un éditeur de texte et apportez les modifications suivantes :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2024-09-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"
}
]
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklists = blocklistClient.GetTextBlocklists();
Console.WriteLine("\nList blocklists:");
foreach (var blocklist in blocklists)
{
Console.WriteLine("BlocklistName: {0}, Description: {1}", blocklist.Name, blocklist.Description);
}
Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
PagedIterable<TextBlocklist> allTextBlocklists = blocklistClient.listTextBlocklists();
System.out.println("\nList Blocklist:");
for (TextBlocklist blocklist : allTextBlocklists) {
System.out.println("Blocklist: " + blocklist.getName() + ", Description: " + blocklist.getDescription());
}
Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
try:
blocklists = client.list_text_blocklists()
if blocklists:
print("\nList blocklists: ")
for blocklist in blocklists:
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nList text blocklists failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function listTextBlocklists() {
const result = await client.path("/text/blocklists").get();
if (isUnexpected(result)) {
throw result;
}
console.log("List blocklists: ");
if (result.body.value) {
for (const blocklist of result.body.value) {
console.log(
"BlocklistName: ",
blocklist.blocklistName,
", Description: ",
blocklist.description
);
}
}
}
(async () => {
await listTextBlocklists();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
Exécutez le script.
Obtenez une liste de blocage par blocklistName
Copiez la commande cURL ci-dessous dans un éditeur de texte et apportez les modifications suivantes :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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=2024-09-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"
}
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var getBlocklist = blocklistClient.GetTextBlocklist(blocklistName);
if (getBlocklist != null && getBlocklist.Value != null)
{
Console.WriteLine("\nGet blocklist:");
Console.WriteLine("BlocklistName: {0}, Description: {1}", getBlocklist.Value.Name, getBlocklist.Value.Description);
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
TextBlocklist getBlocklist = blocklistClient.getTextBlocklist(blocklistName);
if (getBlocklist != null) {
System.out.println("\nGet blocklist:");
System.out.println("BlocklistName: " + getBlocklist.getName() + ", Description: " + getBlocklist.getDescription());
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
blocklist = client.get_text_blocklist(blocklist_name=blocklist_name)
if blocklist:
print("\nGet blocklist: ")
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nGet text blocklist failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function getTextBlocklist() {
const blocklistName = "<your_list_name>";
const result = await client.path("/text/blocklists/{blocklistName}", blocklistName).get();
if (isUnexpected(result)) {
throw result;
}
console.log("Get blocklist: ");
console.log("Name: ", result.body.blocklistName, ", Description: ", result.body.description);
}
(async () => {
await getTextBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Exécutez le script.
Obtenez un blocklistItem par blocklistName et blocklistItemId
Copiez la commande cURL ci-dessous dans un éditeur de texte et apportez les modifications suivantes :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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.
- 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=2024-09-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"
}
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var getBlocklistItemId = "<your_block_item_id>";
var getBlocklistItem = blocklistClient.GetTextBlocklistItem(blocklistName, getBlocklistItemId);
Console.WriteLine("\nGet BlocklistItem:");
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", getBlocklistItem.Value.BlocklistItemId, getBlocklistItem.Value.Text, getBlocklistItem.Value.Description);
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<your_block_item_id>
par l’ID d’un élément précédemment ajouté.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String getBlockItemId = "<your_block_item_id>";
TextBlocklistItem getBlockItem = blocklistClient.getTextBlocklistItem(blocklistName, getBlockItemId);
System.out.println("\nGet BlockItem:");
System.out.println("BlockItemId: " + getBlockItem.getBlocklistItemId() + ", Text: " + getBlockItem.getText() + ", Description: " + getBlockItem.getDescription());
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<your_block_item_id>
par l’ID d’un élément précédemment ajouté.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import TextBlocklistItem, AddOrUpdateTextBlocklistItemsOptions
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text>"
try:
# Add a blocklistItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=blocklist_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlocklistItem not created.")
blocklist_item_id = add_result.blocklist_items[0].blocklist_item_id
# Get this blocklistItem by blocklistItemId
blocklist_item = client.get_text_blocklist_item(blocklist_name=blocklist_name, blocklist_item_id=blocklist_item_id)
print("\nGet blocklistItem: ")
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nGet blocklist item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<block_item_text>
par le texte de votre élément de refus.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function getBlocklistItem() {
const blocklistName = "<your_list_name>";
const blocklistItemId = "<your_block_item_id>";
// Get this blocklistItem by blocklistItemId
const blocklistItem = await client
.path(
"/text/blocklists/{blocklistName}/blocklistItems/{blocklistItemId}",
blocklistName,
blocklistItemId
)
.get();
if (isUnexpected(blocklistItem)) {
throw blocklistItem;
}
console.log("Get blocklistitem: ");
console.log(
"BlocklistItemId: ",
blocklistItem.body.blocklistItemId,
", Text: ",
blocklistItem.body.text,
", Description: ",
blocklistItem.body.description
);
}
(async () => {
await getBlocklistItem();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<your_block_item_id>
par l’ID de l’élément que vous voulez obtenir.
- 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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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.
- 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 POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2024-09-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
.
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"];
string key = os.environ["CONTENT_SAFETY_KEY"];
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var removeBlocklistItemId = "<your_block_item_id>";
var removeBlocklistItemIds = new List<string> { removeBlocklistItemId };
var removeResult = blocklistClient.RemoveBlocklistItems(blocklistName, new RemoveTextBlocklistItemsOptions(removeBlocklistItemIds));
if (removeResult != null && removeResult.Status == 204)
{
Console.WriteLine("\nBlocklistItem removed: {0}.", removeBlocklistItemId);
}
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<your_block_item_id>
par l’ID d’un élément précédemment ajouté.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String removeBlockItemId = "<your_block_item_id>";
List<String> removeBlockItemIds = new ArrayList<>();
removeBlockItemIds.add(removeBlockItemId);
blocklistClient.removeBlocklistItems(blocklistName, new RemoveTextBlocklistItemsOptions(removeBlockItemIds));
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
- Remplacez
<your_block_item_id>
par l’ID d’un élément précédemment ajouté.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import (
TextBlocklistItem,
AddOrUpdateTextBlocklistItemsOptions,
RemoveTextBlocklistItemsOptions,
)
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text>"
try:
# Add a blocklistItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=blocklist_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlocklistItem not created.")
blocklist_item_id = add_result.blocklist_items[0].blocklist_item_id
# Remove this blocklistItem by blocklistItemId
client.remove_blocklist_items(
blocklist_name=blocklist_name, options=RemoveTextBlocklistItemsOptions(blocklist_item_ids=[blocklist_item_id])
)
print(f"\nRemoved blocklistItem: {add_result.blocklist_items[0].blocklist_item_id}")
except HttpResponseError as e:
print("\nRemove blocklist item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
Remplacez <block_item_text>
par le texte de votre élément de refus.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
// Sample: Remove blocklistItems from a blocklist
async function removeBlocklistItems() {
const blocklistName = "<your_list_name>";
const blocklistItemId = "<your_block_item_id>";
// Remove this blocklistItem by blocklistItemId
const removeBlocklistItemsParameters = {
body: {
blocklistItemIds: [blocklistItemId],
},
};
const removeBlocklistItem = await client
.path("/text/blocklists/{blocklistName}:removeBlocklistItems", blocklistName)
.post(removeBlocklistItemsParameters);
if (isUnexpected(removeBlocklistItem)) {
throw removeBlocklistItem;
}
console.log("Removed blocklistItem: ", blocklistItemText);
}
(async () => {
await removeBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- Remplacez
<your_list_name>
par le nom que vous avez utilisé à l’étape de création de la liste.
Remplacez <your_block_item_id
par l’ID de l’élément que vous voulez supprimer.
- Exécutez le script.
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 :
- Remplacez
<endpoint>
par votre URL de point de terminaison.
- Remplacez
<enter_your_key_here>
par votre clé.
- 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=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
Le code de réponse doit être 204
.
Créez une nouvelle application console C# et ouvrez-la dans votre éditeur ou IDE favori. Collez le code suivant.
string endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"];
string key = os.environ["CONTENT_SAFETY_KEY"];
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var deleteResult = blocklistClient.DeleteTextBlocklist(blocklistName);
if (deleteResult != null && deleteResult.Status == 204)
{
Console.WriteLine("\nDeleted blocklist.");
}
- 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.
- Exécutez le script.
Créez une application Java et ouvrez-la dans l’éditeur ou IDE de votre choix. Collez le code suivant.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
blocklistClient.deleteTextBlocklist(blocklistName);
- 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.
- Exécutez le script.
Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Collez le code suivant.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
client.delete_text_blocklist(blocklist_name=blocklist_name)
print(f"\nDeleted blocklist: {blocklist_name}")
except HttpResponseError as e:
print("\nDelete blocklist failed:")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
- 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.
- Exécutez le script.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function deleteBlocklist() {
const blocklistName = "<your_list_name>";
const result = await client.path("/text/blocklists/{blocklistName}", blocklistName).delete();
if (isUnexpected(result)) {
throw result;
}
console.log("Deleted blocklist: ", blocklistName);
}
(async () => {
await deleteBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
- 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.
- Exécutez le script.
Étapes suivantes
Consultez la documentation de référence sur les API pour en savoir plus sur les API utilisées dans ce guide.