Usare un elenco di blocchi

Attenzione

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.

Prerequisiti

  • Una sottoscrizione di Azure: creare un account gratuitamente
  • 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.
  • 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 Azure AI Content Cassaforte ty 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 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.

  1. Per impostare la CONTENT_SAFETY_KEY variabile di ambiente, sostituire YOUR_CONTENT_SAFETY_KEY con una delle chiavi per la risorsa.
  2. Per impostare la CONTENT_SAFETY_ENDPOINT variabile di ambiente, sostituire YOUR_CONTENT_SAFETY_ENDPOINT con l'endpoint per la risorsa.
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 tutti i programmi in esecuzione che leggeranno le variabili di ambiente, inclusa la finestra della console.

Analizzare il testo con un elenco di blocchi

È possibile creare elenchi di blocchi da usare con l'API Text. La procedura seguente consente di iniziare.

Creare o modificare un elenco di blocchi

Copiare il comando cURL seguente 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 "description" campo 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(creato un nuovo elenco) o 200(aggiornato un elenco esistente).

Aggiungere blocklistItems all'elenco

Nota

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

Copiare il comando cURL seguente 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 "description" campo con una descrizione personalizzata.
  5. 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.
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 una matrice 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 blockItem prima che venga applicata l'analisi del testo, in genere non più di cinque minuti.

Analizzare il testo con un elenco di blocchi

Copiare il comando cURL seguente 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 "blocklistNames" campo può contenere una matrice di più ID elenco.
  4. 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.
  5. 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.

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

Altre operazioni 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 seguente 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 deve essere 200 e il corpo della risposta dovrebbe essere simile al seguente:

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

Elencare tutti gli elenchi di elementi bloccati

Copiare il comando cURL seguente 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 deve essere 200. La risposta JSON è simile alla seguente:

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

Ottenere un elenco di blocchi per blocklistName

Copiare il comando cURL seguente 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 deve essere 200. La risposta JSON è simile alla seguente:

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

Ottenere un blocklistItem per blocklistName e blocklistItemId

Copiare il comando cURL seguente 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 blocklistItem. Si tratta del valore del "blocklistItemId" campo dall'API Add blocklistItem o Get all blocklistItems .
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 deve 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 che si desidera ottenere.
  3. Eseguire lo script.

Rimuovere blocklistItems da un elenco di blocchi.

Nota

Ci sarà un certo ritardo dopo l'eliminazione di un elemento prima che venga applicato all'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:

  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 blocklistItem. Si tratta del valore del "blocklistItemId" campo dall'API Add blocklistItem o Get all blocklistItems .
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 una matrice di blocklistItemId valori.

Il codice di risposta deve essere 204.

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.

Copiare il comando cURL seguente 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.