Condividi tramite


Usare una blocklist

Attenzione

I dati di esempio in questa guida possono includere contenuto offensivo. La discrezione dell'utente è consigliata.

I classificatori di intelligenza artificiale predefiniti sono sufficienti per la maggior parte delle esigenze di moderazione dei contenuti. Può tuttavia essere necessario filtrare termini specifici per il proprio caso d’uso. Gli elenchi di blocchi consentono di aggiungere termini personalizzati ai classificatori di intelligenza artificiale. È possibile usare gli elenchi di blocchi per visualizzare termini o frasi specifici che si desidera contrassegnare nel contenuto.

Prerequisiti

  • Una sottoscrizione di Azure: creare un account gratuitamente
  • Dopo aver creato la sottoscrizione di Azure, Creare una risorsa di Sicurezza dei contenuti nel portale di Azure per ottenere la chiave e l'endpoint. Immettere un nome univoco per la risorsa, selezionare la sottoscrizione, quindi selezionare un gruppo di risorse, un'area supportata (vedere Disponibilità di aree) e un piano tariffario supportato. Selezionare Crea.
    • La distribuzione della risorsa richiede alcuni minuti. Al termine, selezionare Vai alla risorsa. Nel riquadro a sinistra, in Gestione risorse selezionare Chiave di sottoscrizione ed endpoint. L'endpoint e una delle chiavi vengono usati per chiamare le API.
  • Una delle seguenti installazioni:
    • cURL per le chiamate API REST.
    • Python 3.x installato
      • 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 Sicurezza dei contenuti di Azure AI per Python. Eseguire il comando pip install azure-ai-contentsafety nella directory del progetto
    • Runtime .NET installato.
      • .NET Core SDK installato.
      • Se si usa .NET, è necessario installare la libreria client di Sicurezza dei contenuti di Azure AI per .NET. Eseguire il comando dotnet add package Azure.AI.ContentSafety --prerelease nella directory del progetto

Creare variabili di ambiente

In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Per impostare la variabile di ambiente per la chiave e l'endpoint, aprire una finestra della console e seguire le istruzioni del sistema operativo e dell'ambiente di sviluppo.

  • Per impostare la CONTENT_SAFETY_KEYvariabile di ambiente, sostituire YOUR_CONTENT_SAFETY_KEY con una delle chiavi della risorsa.
  • Per impostare la CONTENT_SAFETY_ENDPOINTvariabile di ambiente, sostituire YOUR_CONTENT_SAFETY_ENDPOINT con l'endpoint della risorsa.

Importante

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non inserirla mai in post pubblici.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare gli eventuali programmi in esecuzione che leggeranno le variabili di ambiente, inclusa la finestra della console.

Analizzare il testo con una blocklist

È possibile creare blocklist da usare con l'API Testo. Per iniziare, seguire questa procedura.

Creare o modificare una blocklist

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. 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, - . _ ~.
  4. Facoltativamente, sostituire il valore del campo "description" con una descrizione personalizzata.
curl --location --request PATCH '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "description": "This is a violence list"
}'

Il codice di risposta deve essere 201(creazione di un nuovo elenco) o 200(aggiornamento di un elenco esistente).

Aggiungere blocklistItem all'elenco

Nota

È presente un limite massimo di 10.000 termini in totale per tutti gli elenchi. È possibile aggiungere al massimo 100 blocklistItem in una richiesta.

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL) con il nome usato nel passaggio di creazione dell'elenco.
  4. Facoltativamente, sostituire il valore del campo "description" con una descrizione personalizzata.
  5. Sostituire il valore del campo "text" con l'elemento che si desidera aggiungere alla blocklist. La lunghezza massima di un blocklistItem è di 128 caratteri.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:addOrUpdateBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '"blocklistItems": [{
    "description": "string",
    "text": "bleed"
}]'

Suggerimento

È possibile aggiungere più blocklistItem in una chiamata API. Impostare il corpo della richiesta su un array JSON di gruppi di dati:

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

Il codice di risposta deve essere 200.

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

Nota

Ci sarà un certo ritardo dopo l'aggiunta o la modifica di un elemento block-level prima che abbia effetto sull'analisi del testo, in genere non più di cinque minuti.

Analizzare il testo con una blocklist

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco. Il campo "blocklistNames" può contenere un array di diversi ID elenco.
  4. Facoltativamente, modificare il valore di "breakByBlocklists". true indica che una volta trovata una corrispondenza con una blocklist, l'analisi restituirà immediatamente senza output del modello. false causerà la prosecuzione dell'analisi del modello nelle categorie predefinite.
  5. Facoltativamente, modificare il valore del campo "text" 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 la blocklist. Segnala la posizione nella stringa di testo in cui è stata trovata la corrispondenza.

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

Altre operazioni di blocklist

Questa sezione contiene altre operazioni che consentono di gestire e usare la funzionalità blocklist.

Elencare tutti gli elementi blocklist in un elenco

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists/<your_list_name>/blocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

Il codice di stato dovrebbe essere 200 e il corpo della risposta dovrebbe essere simile al seguente:

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

Elencare tutti gli elenchi di blocchi

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

Il codice di stato dovrebbe essere 200. La risposta JSON è simile alla seguente:

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

Ottenere un elenco di blocchi per blocklistName

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Il codice di stato dovrebbe essere 200. La risposta JSON è simile alla seguente:

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

Ottenere un blocklistItem per blocklistName e blocklistItemId

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
  4. Sostituire <your_item_id> con il valore ID per il blocklistitem. Si tratta del valore del campo "blocklistItemId" dalle chiamate API Aggiungi blocklistItem o Ottieni tutti i blocklistItem.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>/blocklistItems/<your_item_id>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Il codice di stato dovrebbe essere 200. La risposta JSON è simile alla seguente:

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Sostituire <your_list_name> con il nome usato nel passaggio di creazione dell'elenco.
  2. Sostituire <your_block_item_id> con l'ID dell'elemento da ottenere.
  3. Eseguire lo script.

Rimuovere blocklistItem da un elenco di blocchi.

Nota

Ci sarà un certo ritardo dopo l’eliminazione di un elemento block-level prima che abbia effetto sull'analisi del testo, in genere non più di cinque minuti.

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
  4. Sostituire <item_id> con il valore ID per il blocklistitem. Si tratta del valore del campo "blocklistItemId" dalle chiamate API Aggiungi blocklistItem o Ottieni tutti i blocklistItem.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
--data-raw '"blocklistItemIds":[
    "<item_id>"
]'

Suggerimento

È possibile eliminare più blocklistItem in una chiamata API. Impostare il corpo della richiesta su un array di valori blocklistItemId .

Il codice di risposta deve essere 204.

Eliminare un elenco e tutto il contenuto

Nota

Ci sarà un certo ritardo dopo l’eliminazione di un elenco prima che abbia effetto sull'analisi del testo, in genere non più di cinque minuti.

Copiare il comando cURL qui di seguito in un editor di testo e apportare le modifiche seguenti:

  1. Sostituire <endpoint> con l'URL dell'endpoint.
  2. Sostituire <enter_your_key_here> con la chiave.
  3. Sostituire <your_list_name> (nell'URL della richiesta) con il nome usato nel passaggio di creazione dell'elenco.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \

Il codice di risposta deve essere 204.

Passaggi successivi

Per altre informazioni sulle API usate in questa guida, vedere la documentazione di riferimento sulle API.