Korzystanie z listy zablokowanych
Artykuł 09/02/2024
Współautorzy: 4
Opinia
W tym artykule
Uwaga
Przykładowe dane w tym przewodniku mogą zawierać obraźliwą zawartość. Zaleca się, aby użytkownik był dyskrecjonalne.
Domyślne klasyfikatory sztucznej inteligencji są wystarczające dla większości potrzeb con tryb namiotu ration. Może być jednak konieczne wyświetlanie ekranu elementów specyficznych dla danego przypadku użycia. Listy blokowe umożliwiają dodawanie terminów niestandardowych do klasyfikatorów sztucznej inteligencji. Możesz użyć list zablokowanych, aby wyświetlać określone terminy lub frazy, które mają być flagowe w zawartości.
Wymagania wstępne
Subskrypcja platformy Azure — utwórz bezpłatnie
Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz .
Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu . W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy . Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
Zainstalowano jedną z następujących opcji:
cURL dla wywołań interfejsu API REST.
Zainstalowany język Python 3.x
Instalacja języka Python powinna zawierać narzędzie . Możesz sprawdzić, czy masz zainstalowane narzędzie, uruchamiając polecenie pip --version
w wierszu polecenia. Pobierz narzędzie, instalując najnowszą wersję języka Python.
Jeśli używasz języka Python, musisz zainstalować bibliotekę klienta Zabezpieczenia zawartości usługi Azure AI dla języka Python. Uruchom polecenie pip install azure-ai-contentsafety
w katalogu projektu.
Zainstalowane środowisko uruchomieniowe .NET.
Zainstalowany zestaw .NET Core SDK.
Jeśli używasz platformy .NET, musisz zainstalować bibliotekę klienta Bezpieczeństwo zawartości usługi Azure AI dla platformy .NET. Uruchom polecenie dotnet add package Azure.AI.ContentSafety --prerelease
w katalogu projektu.
Tworzenie zmiennych środowiskowych
W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
Aby ustawić zmienną CONTENT_SAFETY_KEY
środowiskową, zastąp YOUR_CONTENT_SAFETY_KEY
element jednym z kluczy zasobu.
Aby ustawić zmienną CONTENT_SAFETY_ENDPOINT
środowiskową, zastąp YOUR_CONTENT_SAFETY_ENDPOINT
element punktem końcowym zasobu.
Ważne
Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault . Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
export CONTENT_SAFETY_KEY='YOUR_CONTENT_SAFETY_KEY'
export CONTENT_SAFETY_ENDPOINT='YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych uruchom polecenie source ~/.bashrc
w oknie konsoli, aby wprowadzić zmiany w życie.
Analizowanie tekstu przy użyciu listy zablokowanych
Listy blokowe można tworzyć do użycia z interfejsem API tekstu. Poniższe kroki ułatwiają rozpoczęcie pracy.
Tworzenie lub modyfikowanie listy zablokowanych
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL) nazwą niestandardową listy. Zastąp również ostatni termin adresu URL REST tą samą nazwą. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~
.
Opcjonalnie zastąp wartość "description"
pola opisem niestandardowym.
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"
}'
Kod odpowiedzi powinien być 201
(utworzona nowa lista) lub 200
(zaktualizowana istniejąca lista).
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
Zastąp <your_list_name>
ciąg nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~
.
Opcjonalnie zastąp <description>
ciąg opisem niestandardowym.
Uruchom kod.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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.");
}
Zastąp <your_list_name>
ciąg nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~
.
Opcjonalnie zastąp <description>
ciąg opisem niestandardowym.
Uruchom kod.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~
.
Zastąp <description>
ciąg opisem niestandardowym.
Uruchom skrypt.
Utwórz nowy skrypt JavaScript i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
});
Zastąp <your_list_name>
ciąg nazwą niestandardową listy. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~
.
Opcjonalnie zastąp <description>
ciąg opisem niestandardowym.
Uruchom skrypt.
Dodawanie elementu blocklistItems do listy
Uwaga
Istnieje maksymalny limit wynoszący 10 000 terminów łącznie na wszystkich listach. W jednym żądaniu można dodać co najwyżej 100 elementów blocklistItems.
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL) nazwą użytą w kroku tworzenia listy.
Opcjonalnie zastąp wartość "description"
pola opisem niestandardowym.
Zastąp wartość "text"
pola elementem, który chcesz dodać do listy zablokowanych. Maksymalna długość elementu blocklistItem wynosi 128 znaków.
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"
}]'
Napiwek
Możesz dodać wiele elementów blocklistItems w jednym wywołaniu interfejsu API. Prześlij treść żądania do tablicy JSON grup danych:
{
"blocklistItems": [
{
"description": "string",
"text": "bleed"
},
{
"description": "string",
"text": "blood"
}
]
}
Kod odpowiedzi powinien mieć wartość 200
.
{
"blocklistItems:"[
{
"blocklistItemId": "string",
"description": "string",
"text": "bleed"
}
]
}
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp wartości pól blocklistItemText1
i blocklistItemText2
elementami, które chcesz dodać do listy zablokowanych. Maksymalna długość elementu blockItem wynosi 128 znaków.
Opcjonalnie dodaj więcej ciągów blockItem do parametru blockItems
.
Uruchom kod.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
}
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp wartości pól blockItemText1
i blockItemText2
elementami, które chcesz dodać do listy zablokowanych. Maksymalna długość elementu blockItem wynosi 128 znaków.
Opcjonalnie dodaj więcej ciągów blockItem do parametru blockItems
.
Uruchom kod.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp wartości pól blocklist_item_text_1
i blocklist_item_text_2
elementami, które chcesz dodać do listy zablokowanych. Maksymalna długość elementu blockItem wynosi 128 znaków.
Opcjonalnie dodaj więcej ciągów blockItem do parametru block_items
.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp wartości pól block_item_text_1
i block_item_text_2
elementami, które chcesz dodać do listy zablokowanych. Maksymalna długość elementu blockItem wynosi 128 znaków.
Opcjonalnie dodaj więcej ciągów blockItem do parametru blocklistItems
.
Uruchom skrypt.
Uwaga
Po dodaniu lub edytowaniu elementu blockItem nastąpi opóźnienie, zanim zacznie obowiązywać analiza tekstu, zwykle nie więcej niż pięć minut .
Analizowanie tekstu przy użyciu listy zablokowanych
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy. Pole "blocklistNames"
może zawierać tablicę wielu identyfikatorów listy.
Opcjonalnie zmień wartość ."breakByBlocklists"
true
wskazuje, że po dopasowaniu listy zablokowanych analiza zwróci natychmiast bez danych wyjściowych modelu. false
spowoduje, że model będzie nadal wykonywać analizę w kategoriach domyślnych.
Opcjonalnie zmień wartość "text"
pola na dowolny tekst, który chcesz przeanalizować.
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"
}'
Odpowiedź JSON będzie zawierać wartość wskazującą "blocklistMatchResults"
wszystkie dopasowania z listą zablokowanych. Raportuje lokalizację w ciągu tekstowym, w którym znaleziono dopasowanie.
{
"blocklistsMatch": [
{
"blocklistName": "string",
"blocklistItemId": "string",
"blocklistItemText": "bleed"
}
],
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 0
}
]
}
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp request
tekst wejściowy tekst tekstem, który chcesz przeanalizować.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
}
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp request
tekst wejściowy tekst tekstem, który chcesz przeanalizować.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp zmienną input_text
tekstem, który chcesz przeanalizować.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp zmienną inputText
tekstem, który chcesz przeanalizować.
Uruchom skrypt.
Inne operacje listy bloków
Ta sekcja zawiera więcej operacji ułatwiacych zarządzanie funkcją listy zablokowanych i korzystanie z nich.
Wyświetlanie listy wszystkich elementów blocklistItems na liście
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
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'
Powinien to być 200
kod stanu, a treść odpowiedzi powinna wyglądać następująco:
{
"values": [
{
"blocklistItemId": "string",
"description": "string",
"text": "bleed",
}
]
}
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Wyświetl listę wszystkich list zablokowanych
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
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'
Kod stanu powinien mieć wartość 200
. Odpowiedź JSON wygląda następująco:
"value": [
{
"blocklistName": "string",
"description": "string"
}
]
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
}
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Uruchom skrypt.
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);
});
Uruchom skrypt.
Pobieranie listy zablokowanych według blocklistName
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''
Kod stanu powinien mieć wartość 200
. Odpowiedź JSON wygląda następująco:
{
"blocklistName": "string",
"description": "string"
}
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Pobieranie elementu blocklistItem według właściwości blocklistName i blocklistItemId
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Zastąp <your_item_id>
ciąg wartością ID elementu blocklistItem. Jest to wartość "blocklistItemId"
pola z pola Dodaj blocklistItem lub Pobierz wszystkie wywołania interfejsu API 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 ''
Kod stanu powinien mieć wartość 200
. Odpowiedź JSON wygląda następująco:
{
"blocklistItemId": "string",
"description": "string",
"text": "string"
}
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id>
element identyfikatorem wcześniej dodanego elementu.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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());
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id>
element identyfikatorem wcześniej dodanego elementu.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <block_item_text>
element tekstem bloku.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id>
element identyfikatorem elementu, który chcesz pobrać.
Uruchom skrypt.
Usuń element blocklistItems z listy zablokowanych.
Uwaga
Po usunięciu elementu nastąpi opóźnienie, zanim zacznie obowiązywać analiza tekstu, zwykle nie więcej niż pięć minut .
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Zastąp <item_id>
ciąg wartością ID elementu blocklistItem. Jest to wartość "blocklistItemId"
pola z pola Dodaj blocklistItem lub Pobierz wszystkie wywołania interfejsu API 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>"
]'
Napiwek
Można usunąć wiele elementów blocklistItems w jednym wywołaniu interfejsu API. Ustaw treść żądania jako tablicę blocklistItemId
wartości.
Kod odpowiedzi powinien mieć wartość 204
.
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
}
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id>
element identyfikatorem wcześniej dodanego elementu.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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));
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id>
element identyfikatorem wcześniej dodanego elementu.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <block_item_text>
element tekstem bloku.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg nazwą użytą w kroku tworzenia listy.
Zastąp <your_block_item_id
element identyfikatorem elementu, który chcesz usunąć.
Uruchom skrypt.
Usuwanie listy i całej jej zawartości
Uwaga
Po usunięciu listy przed rozpoczęciem analizy tekstu nastąpi opóźnienie, zwykle nie więcej niż pięć minut .
Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:
Zastąp <endpoint>
ciąg adresem URL punktu końcowego.
Zastąp element <enter_your_key_here>
swoim kluczem.
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
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' \
Kod odpowiedzi powinien mieć wartość 204
.
Utwórz nową aplikację konsolową języka C# i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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.");
}
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz aplikację Java i otwórz ją w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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);
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Wklej następujący kod.
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
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
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);
});
Zastąp <your_list_name>
ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
Uruchom skrypt.
Następne kroki
Zapoznaj się z dokumentacją referencyjną interfejsu API, aby dowiedzieć się więcej o interfejsach API używanych w tym przewodniku.