I dati di esempio in questa guida potrebbero contenere contenuto offensivo. La discrezione dell'utente è consigliata.
I classificatori di intelligenza artificiale predefiniti sono sufficienti per la maggior parte delle esigenze di con modalità tenda ration. Tuttavia, potrebbe essere necessario visualizzare una schermata per gli elementi specifici del caso d'uso.
Dopo aver creato la sottoscrizione di Azure, creare una risorsa Content Cassaforte ty nel portale di Azure per ottenere la chiave e l'endpoint. Immettere un nome univoco per la risorsa, selezionare la sottoscrizione e selezionare un gruppo di risorse, un'area supportata (Stati Uniti orientali o Europa occidentale) e il piano tariffario supportato. Selezionare Crea.
La distribuzione della risorsa richiede alcuni minuti. Al termine, selezionare Vai alla risorsa. Nel riquadro sinistro, in Gestione risorse selezionare Chiave di sottoscrizione ed Endpoint. L'endpoint e una delle chiavi vengono usati per chiamare le API.
L'installazione di Python deve includere pip. È possibile verificare se pip è installato eseguendo pip --version nella riga di comando. Ottenere pip installando la versione più recente di Python.
Se si usa Python, è necessario installare la libreria client di Azure AI Content Cassaforte ty per Python. Eseguire il comando pip install azure-ai-contentsafety nella directory del progetto.
Se si usa .NET, è necessario installare la libreria client di Azure AI Content Cassaforte ty per .NET. Eseguire il comando dotnet add package Azure.AI.ContentSafety --prerelease nella directory del progetto.
Creare variabili di ambiente
In questo esempio si scriveranno le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.
Suggerimento
Non includere la chiave direttamente nel codice e non pubblicarla pubblicamente. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo sicurezza dei servizi di intelligenza artificiale di Azure.
Per impostare la variabile di ambiente per la chiave e l'endpoint, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.
Per impostare la CONTENT_SAFETY_KEY variabile di ambiente, sostituire YOUR_CONTENT_SAFETY_KEY con una delle chiavi per la risorsa.
Per impostare la CONTENT_SAFETY_ENDPOINT variabile di ambiente, sostituire YOUR_CONTENT_SAFETY_ENDPOINT con l'endpoint per la risorsa.
Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che leggeranno le variabili di ambiente, inclusa la finestra della console.
Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:
Sostituire <endpoint> con l'URL dell'endpoint.
Sostituire <enter_your_key_here> con la chiave.
Sostituire <your_list_name> (nell'URL) con un nome personalizzato per l'elenco. Sostituire anche l'ultimo termine dell'URL REST con lo stesso nome. Caratteri consentiti: 0-9, A-Z, a-z, - . _ ~.
Facoltativamente, sostituire il valore del "description" campo con una descrizione personalizzata.
Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:
Sostituire <endpoint> con l'URL dell'endpoint.
Sostituire <enter_your_key_here> con la chiave.
Sostituire <your_list_name> (nell'URL) con il nome usato nel passaggio di creazione dell'elenco.
Facoltativamente, sostituire il valore del "description" campo con una descrizione personalizzata.
Sostituire il valore del "text" campo con l'elemento che si vuole aggiungere all'elenco di blocchi. La lunghezza massima di un blocklistItem è di 128 caratteri.
Creare una nuova app console C# e aprirla nell'editor o nell'IDE preferito. Incollare il codice seguente.
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);
}
}
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire i valori dei blocklistItemText1 campi e blocklistItemText2 con gli elementi da aggiungere all'elenco di blocchi. La lunghezza massima di un blockItem è di 128 caratteri.
Facoltativamente, aggiungere altre stringhe blockItem al blockItems parametro .
Eseguire il codice.
Creare un'applicazione Java e aprirla nell'editor o nell'IDE preferito. Incollare il codice seguente.
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire i valori dei blockItemText1 campi e blockItemText2 con gli elementi da aggiungere all'elenco di blocchi. La lunghezza massima di un blockItem è di 128 caratteri.
Facoltativamente, aggiungere altre stringhe blockItem al blockItems parametro .
Eseguire il codice.
Creare un nuovo script Python in un editor o un IDE a scelta. Incollare il codice seguente.
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
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire i valori dei blocklist_item_text_1 campi e blocklist_item_text_2 con gli elementi da aggiungere all'elenco di blocchi. La lunghezza massima di un blockItem è di 128 caratteri.
Facoltativamente, aggiungere altre stringhe blockItem al block_items parametro .
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire i valori dei block_item_text_1 campi e block_item_text_2 con gli elementi da aggiungere all'elenco di blocchi. La lunghezza massima di un blockItem è di 128 caratteri.
Facoltativamente, aggiungere altre stringhe blockItem al blocklistItems parametro .
Eseguire lo script.
Nota
Ci sarà un certo ritardo dopo l'aggiunta o la modifica di un blockItem prima che venga applicata l'analisi del testo, in genere non più di cinque minuti.
Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:
Sostituire <endpoint> con l'URL dell'endpoint.
Sostituire <enter_your_key_here> con la chiave.
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco. Il "blocklistNames" campo può contenere una matrice di più ID elenco.
Facoltativamente, modificare il valore di "breakByBlocklists". true indica che una volta trovata una corrispondenza con un elenco di blocchi, l'analisi restituirà immediatamente senza output del modello. false farà sì che il modello continui a eseguire l'analisi nelle categorie predefinite.
Facoltativamente, modificare il valore del "text" campo in qualsiasi testo da analizzare.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2023-10-01&' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
"text": "I want to beat you till you bleed",
"categories": [
"Hate",
"Sexual",
"SelfHarm",
"Violence"
],
"blocklistNames":["<your_list_name>"],
"haltOnBlocklistHit": false,
"outputType": "FourSeverityLevels"
}'
La risposta JSON conterrà un valore "blocklistMatchResults" che indica le corrispondenze con l'elenco di blocchi. Segnala la posizione nella stringa di testo in cui è stata trovata la corrispondenza.
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire il request testo di input con qualsiasi testo da analizzare.
Eseguire lo script.
Creare un nuovo script Python in un editor o un IDE a scelta. Incollare il codice seguente.
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
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire la input_text variabile con il testo che si vuole analizzare.
Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:
Sostituire <endpoint> con l'URL dell'endpoint.
Sostituire <enter_your_key_here> con la chiave.
Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
Sostituire <your_item_id> con il valore ID per blocklistItem. Si tratta del valore del "blocklistItemId" campo dall'API Add blocklistItem o Get all blocklistItems .
Copiare il comando cURL seguente in un editor di testo e apportare le modifiche seguenti:
Sostituire <endpoint> con l'URL dell'endpoint.
Sostituire <enter_your_key_here> con la chiave.
Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
Sostituire <item_id> con il valore ID per blocklistItem. Si tratta del valore del "blocklistItemId" campo dall'API Add blocklistItem o Get all blocklistItems .
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire <your_block_item_id> con l'ID di un elemento aggiunto in precedenza.
Eseguire lo script.
Creare un nuovo script Python in un editor o un IDE a scelta. Incollare il codice seguente.
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
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire <block_item_text> con il testo dell'elemento di blocco.
Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
Sostituire <your_block_item_id con l'ID dell'elemento da rimuovere.
Eseguire lo script.
Eliminare un elenco e tutto il relativo contenuto
Nota
Dopo l'eliminazione di un elenco si verifica un ritardo prima dell'applicazione dell'analisi del testo, in genere non più di cinque minuti.