Partilhar via


Usar uma lista de bloqueio

Atenção

Os dados de exemplo neste guia podem conter conteúdo ofensivo. Aconselha-se a discrição do utilizador.

Os classificadores de IA padrão são suficientes para a maioria das necessidades de moderação de conteúdo. No entanto, talvez seja necessário examinar os itens específicos do seu caso de uso. As listas de bloqueio permitem adicionar termos personalizados aos classificadores de IA. Você pode usar listas de bloqueio para filtrar termos ou frases específicos que deseja sinalizar em seu conteúdo.

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso de Segurança de Conteúdo no portal do Azure para obter sua chave e ponto de extremidade. Introduza um nome exclusivo para o seu recurso, selecione a sua subscrição e selecione um grupo de recursos, uma região suportada (consulte Disponibilidade da região) e um escalão de preços suportado. Depois, selecione Criar.
    • O recurso leva alguns minutos para ser implantado. Depois que terminar, selecione ir para recurso. No painel esquerdo, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e qualquer uma das chaves são usados para chamar APIs.
  • Um dos seguintes instalados:
    • cURL para chamadas de API REST.
    • Python 3.x instalado
      • Sua instalação do Python deve incluir pip. Você pode verificar se você tem pip instalado executando pip --version na linha de comando. Obtenha pip instalando a versão mais recente do Python.
      • Se você estiver usando Python, precisará instalar a biblioteca de cliente do Azure AI Content Safety para Python. Execute o comando pip install azure-ai-contentsafety no diretório do projeto.
    • .NET Runtime instalado.
      • SDK do .NET Core instalado.
      • Se você estiver usando o .NET, precisará instalar a biblioteca de cliente do Azure AI Content Safety para .NET. Execute o comando dotnet add package Azure.AI.ContentSafety --prerelease no diretório do projeto.

Criar variáveis de ambiente

Neste exemplo, você gravará suas credenciais em variáveis de ambiente na máquina local que executa o aplicativo.

Para definir a variável de ambiente para sua chave e ponto de extremidade, abra uma janela do console e siga as instruções para seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a CONTENT_SAFETY_KEY variável de ambiente, substitua YOUR_CONTENT_SAFETY_KEY por uma das chaves do seu recurso.
  • Para definir a variável de CONTENT_SAFETY_ENDPOINT ambiente, substitua YOUR_CONTENT_SAFETY_ENDPOINT pelo ponto de extremidade do seu recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Cofre de Chaves do Azure. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que lerão as variáveis de ambiente, incluindo a janela do console.

Analisar texto com uma lista de bloqueio

Você pode criar listas de bloqueio para usar com a API de texto. Os passos seguintes ajudam-no a começar.

Criar ou modificar uma lista de bloqueio

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL) por um nome personalizado para a sua lista. Substitua também o último termo do URL REST pelo mesmo nome. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  4. Opcionalmente, substitua o "description" valor do campo por uma descrição personalizada.
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"
}'

O código de resposta deve ser 201(criada uma nova lista) ou 200(atualizada uma lista existente).

Adicionar blocklistItems à lista

Nota

Há um limite máximo de 10.000 termos no total em todas as listas. É possível adicionar um máximo de 100 blocklistItems num único pedido.

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL) pelo nome usado na etapa de criação da lista.
  4. Opcionalmente, substitua o "description" valor do campo por uma descrição personalizada.
  5. Substitua o "text" valor do campo pelo item que você deseja adicionar à sua lista de bloqueio. O comprimento máximo de um blocklistItem é de 128 caracteres.
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"
}]'

Gorjeta

Você pode adicionar vários blocklistItems em uma chamada de API. Torne o corpo da solicitação uma matriz JSON de grupos de dados:

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

O código de resposta deve ser 200.

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

Nota

Haverá algum atraso depois de adicionar ou editar um blockItem antes que ele entre em vigor na análise de texto, geralmente não mais do que cinco minutos.

Analisar texto com uma lista de bloqueio

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> pelo nome usado na etapa de criação da lista. O "blocklistNames" campo pode conter uma matriz de vários IDs de lista.
  4. Opcionalmente, altere o valor de "breakByBlocklists". true indica que, uma vez que uma lista de bloqueio é correspondida, a análise retornará imediatamente sem saída do modelo. false fará com que o modelo continue a fazer análise nas categorias padrão.
  5. Opcionalmente, altere o "text" valor do campo para qualquer texto que você deseja analisar.
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"
}'

A resposta JSON conterá um "blocklistMatchResults" que indica quaisquer correspondências com sua lista de bloqueio. Ele informa o local na cadeia de texto onde a correspondência foi encontrada.

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

Outras operações da lista de bloqueio

Esta seção contém mais operações para ajudá-lo a gerenciar e usar o recurso de lista de bloqueio.

Listar todos os blocklistItems em uma lista

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL da solicitação) pelo nome usado na etapa de criação da lista.
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'

O código de status deve ser e o corpo da resposta deve ter 200 esta aparência:

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

Listar todas as listas de bloqueio

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
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'

O código de status deve ser 200. A resposta JSON tem esta aparência:

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

Obter uma lista de bloqueio por blocklistName

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL da solicitação) pelo nome usado na etapa de criação da lista.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

O código de status deve ser 200. A resposta JSON tem esta aparência:

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

Obter um blocklistItem por blocklistName e blocklistItemId

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL da solicitação) pelo nome usado na etapa de criação da lista.
  4. Substitua <your_item_id> pelo valor ID para blocklistItem. Este é o "blocklistItemId" valor do campo das chamadas da API Add blocklistItem ou Get all 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 ''

O código de status deve ser 200. A resposta JSON tem esta aparência:

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Substitua <your_list_name> pelo nome usado na etapa de criação da lista.
  2. Substitua <your_block_item_id> pela ID do item que você deseja obter.
  3. Execute o script.

Remova blocklistItems de uma lista de bloqueio.

Nota

Haverá algum atraso depois de excluir um item antes que ele entre em vigor na análise de texto, geralmente não mais de cinco minutos.

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL da solicitação) pelo nome usado na etapa de criação da lista.
  4. Substitua <item_id> pelo valor ID para blocklistItem. Este é o "blocklistItemId" valor do campo das chamadas da API Add blocklistItem ou Get all 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>"
]'

Gorjeta

Você pode excluir vários blocklistItems em uma chamada de API. Torne o corpo da solicitação uma matriz de blocklistItemId valores.

O código de resposta deve ser 204.

Eliminar uma lista e todo o seu conteúdo

Nota

Haverá algum atraso depois de excluir uma lista antes que ela entre em vigor na análise de texto, geralmente não mais de cinco minutos.

Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:

  1. Substitua <endpoint> pelo URL do ponto final.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (no URL da solicitação) pelo nome usado na etapa de criação da lista.
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' \

O código de resposta deve ser 204.

Próximos passos

Consulte a documentação de referência da API para saber mais sobre as APIs usadas neste guia.