De voorbeeldgegevens in deze handleiding kunnen aanstootgevende inhoud bevatten. Gebruikers discretie wordt geadviseerd.
De standaard AI-classificaties zijn voldoende voor de meeste con tentmodus rationbehoeften. Mogelijk moet u echter schermeren voor items die specifiek zijn voor uw use-case. Met bloklijsten kunt u aangepaste termen toevoegen aan de AI-classificaties. U kunt blokkeringslijsten gebruiken om te zoeken naar specifieke termen of woordgroepen die u in uw inhoud wilt markeren.
Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (zie Beschikbaarheid van regio) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, gaat u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.
Uw Python-installatie moet pip bevatten. U kunt controleren of pip is geïnstalleerd door op de opdrachtregel uit te voeren pip --version . Haal pip op door de nieuwste versie van Python te installeren.
Als u Python gebruikt, moet u de Azure AI Content Safety-clientbibliotheek voor Python installeren. Voer de opdracht pip install azure-ai-contentsafety uit in de projectmap.
Als u .NET gebruikt, moet u de Azure AI Content Safety-clientbibliotheek voor .NET installeren. Voer de opdracht dotnet add package Azure.AI.ContentSafety --prerelease uit in de projectmap.
Omgevingsvariabelen maken
In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.
Als u de omgevingsvariabele voor uw sleutel en eindpunt wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.
Als u de CONTENT_SAFETY_KEY omgevingsvariabele wilt instellen, vervangt u deze door YOUR_CONTENT_SAFETY_KEY een van de sleutels voor uw resource.
Als u de CONTENT_SAFETY_ENDPOINT omgevingsvariabele wilt instellen, vervangt YOUR_CONTENT_SAFETY_ENDPOINT u het eindpunt voor uw resource.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's die de omgevingsvariabelen lezen, met inbegrip van het consolevenster, opnieuw opstarten.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
Vervang <endpoint> door uw eindpunt-URL.
Vervang <enter_your_key_here> door uw sleutel.
Vervang <your_list_name> (in de URL) door een aangepaste naam voor uw lijst. Vervang ook de laatste term van de REST-URL door dezelfde naam. Toegestane tekens: 0-9, A-Z, a-z, - . _ ~.
Vervang eventueel de waarde van het "description" veld door een aangepaste beschrijving.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
Vervang <endpoint> door uw eindpunt-URL.
Vervang <enter_your_key_here> door uw sleutel.
Vervang <your_list_name> (in de URL) door de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang eventueel de waarde van het "description" veld door een aangepaste beschrijving.
Vervang de waarde van het "text" veld door het item dat u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blocklistItem is 128 tekens.
Maak een nieuwe C#-console-app en open deze in uw favoriete editor of IDE. Plak er de volgende code in.
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);
}
}
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de waarden van de blocklistItemText1 en blocklistItemText2 velden door de items die u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blockItem is 128 tekens.
Voeg desgewenst meer blockItem-tekenreeksen toe aan de blockItems parameter.
Voer de code uit.
Maak een Java-toepassing en open deze in uw favoriete editor of IDE. Plak er de volgende code in.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de waarden van de blockItemText1 en blockItemText2 velden door de items die u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blockItem is 128 tekens.
Voeg desgewenst meer blockItem-tekenreeksen toe aan de blockItems parameter.
Voer de code uit.
Maak een nieuw Python-script en open het in uw favoriete editor of IDE. Plak er de volgende code in.
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
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de waarden van de blocklist_item_text_1 en blocklist_item_text_2 velden door de items die u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blockItem is 128 tekens.
Voeg desgewenst meer blockItem-tekenreeksen toe aan de block_items parameter.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de waarden van de block_item_text_1 en block_item_text_2 velden door de items die u wilt toevoegen aan de blokkeringslijst. De maximale lengte van een blockItem is 128 tekens.
Voeg desgewenst meer blockItem-tekenreeksen toe aan de blocklistItems parameter.
Voer het script uit.
Notitie
Er is enige vertraging nadat u een blockItem hebt toegevoegd of bewerkt voordat deze van kracht wordt op tekstanalyse, meestal niet meer dan vijf minuten.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
Vervang <endpoint> door uw eindpunt-URL.
Vervang <enter_your_key_here> door uw sleutel.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst. Het "blocklistNames" veld kan een matrix met meerdere lijst-id's bevatten.
Wijzig desgewenst de waarde van "breakByBlocklists". true geeft aan dat zodra een bloklijst overeenkomt, de analyse onmiddellijk wordt geretourneerd zonder modeluitvoer. false zorgt ervoor dat het model blijft analyseren in de standaardcategorieën.
U kunt desgewenst de waarde van het "text" veld wijzigen in de tekst die u wilt analyseren.
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"
}'
Het JSON-antwoord bevat een "blocklistMatchResults" antwoord dat alle overeenkomsten met uw bloklijst aangeeft. Hiermee wordt de locatie in de tekenreeks gerapporteerd waar de overeenkomst is gevonden.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de request invoertekst door de tekst die u wilt analyseren.
Voer het script uit.
Maak een nieuw Python-script en open het in uw favoriete editor of IDE. Plak er de volgende code in.
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
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang de input_text variabele door de tekst die u wilt analyseren.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
Vervang <endpoint> door uw eindpunt-URL.
Vervang <enter_your_key_here> door uw sleutel.
Vervang <your_list_name> (in de aanvraag-URL) door de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang <your_item_id> door de id-waarde voor de blocklistItem. Dit is de waarde van het "blocklistItemId" veld uit de api-aanroepen voor blocklistItem toevoegen of Alle API-aanroepen voor blocklistItems ophalen.
Kopieer de onderstaande cURL-opdracht naar een teksteditor en breng de volgende wijzigingen aan:
Vervang <endpoint> door uw eindpunt-URL.
Vervang <enter_your_key_here> door uw sleutel.
Vervang <your_list_name> (in de aanvraag-URL) door de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang <item_id> door de id-waarde voor de blocklistItem. Dit is de waarde van het "blocklistItemId" veld uit de api-aanroepen voor blocklistItem toevoegen of Alle API-aanroepen voor blocklistItems ophalen.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang <your_block_item_id> door de id van een eerder toegevoegd item.
Voer het script uit.
Maak een nieuw Python-script en open het in uw favoriete editor of IDE. Plak er de volgende code in.
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
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang <block_item_text> door de tekst van het blokitem.
Vervang door <your_list_name> de naam die u hebt gebruikt in de stap voor het maken van de lijst.
Vervang door <your_block_item_id de id van het item dat u wilt verwijderen.
Voer het script uit.
Een lijst en alle inhoud ervan verwijderen
Notitie
Er is enige vertraging nadat u een lijst hebt verwijderd voordat deze van kracht wordt op tekstanalyse, meestal niet meer dan vijf minuten.