Compartilhar via


Usar uma lista de bloqueados

Cuidado

Os dados de amostra neste guia podem ter um conteúdo ofensivo. O critério do usuário é aconselhado.

Os classificadores padrão de IA são suficientes para a maioria das necessidades de moderação de conteúdo. No entanto, talvez você precise examinar os itens que são específicos para seu caso de uso. As listas de bloqueio permitem que você adicione termos personalizados aos classificadores de IA. Você pode usar as 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 uma assinatura do Azure, crie um recurso de Segurança do Conteúdo no portal do Azure para obter uma chave e um ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura e selecione um grupo de recursos, uma região com suporte (confira a Disponibilidade de região) e um tipo de preço com suporte. Em seguida, selecione Criar.
    • O recurso demora alguns minutos para implantar. Após a conclusão, selecione ir para o recurso. No painel à esquerda, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e uma das chaves são usados para chamar as APIs.
  • Um dos seguintes instalados:
    • cURL para chamadas à API REST.
    • Python 3.x instalado
      • A instalação do Python deve incluir o pip. Você pode executar pip --version na linha de comando para verificar se o pip está instalado. Instale a versão mais recente do Python para obter o pip.
      • Se você estiver usando o SDK do Python, precisará instalar a biblioteca de clientes do Content Safety de IA do Azure para Python. Execute o comando pip install azure-ai-contentsafety no diretório do seu projeto.
    • Runtime do .NET instalado.
      • SDK do .NET Core instalado.
      • Se você estiver usando o SDK do Python, precisará instalar a biblioteca de clientes da Segurança de Conteúdo da IA do Azure para Python. Execute o comando dotnet add package Azure.AI.ContentSafety --prerelease no diretório do seu projeto.

Criar variáveis de ambiente

Neste exemplo, você gravará as credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

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

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

Importante

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

Para obter mais informações sobre a segurança dos serviços de IA, veja 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 bloqueados

Você pode criar listas de bloqueados para usar com a API de Texto. As etapas a seguir ajudam a começar.

Criar ou modificar uma lista de bloqueados

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL) por um nome personalizado para sua lista. Substitua também o último termo da URL REST pelo mesmo nome. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  4. Opcionalmente, substitua o valor do campo "description" 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(criou uma nova lista) ou 200(atualizou uma lista existente).

Adicionar blocklistItems à lista

Observação

Há um limite máximo de 10.000 termos no total em todas as listas. Você pode adicionar no máximo 100 blocklistItems em uma solicitação.

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL) pelo nome que você utilizou na etapa de criação da lista.
  4. Opcionalmente, substitua o valor do campo "description" por uma descrição personalizada.
  5. Substitua o valor do campo "text" pelo item que você gostaria de adicionar à sua lista de bloqueados. 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"
}]'

Dica

Você pode adicionar vários blocklistItems em uma chamada à 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"
  
   }
 ]
}

Observação

Haverá algum atraso depois que você 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 bloqueados

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> pelo nome utilizado na etapa de criação da lista. O campo "blocklistNames" pode conter uma matriz de várias IDs da lista.
  4. Como opção, altere o valor de "breakByBlocklists". true indica que, depois que uma lista de bloqueados for correspondida, a análise retornará imediatamente sem a saída do modelo. false fará com que o modelo continue a fazer a análise nas categorias padrão.
  5. Como opção, altere o valor do campo "text" para qualquer texto que você queira 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 todas as correspondências com sua lista de bloqueados. Ela relata o local na cadeia de caracteres do texto em que a correspondência foi encontrada.

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

Outras operações da lista de bloqueados

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

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> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL da solicitação) pelo nome que você utilizou 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 200 e o corpo da resposta deve ter esta aparência:

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

Listar todas as listas de bloqueados

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  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> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL da solicitação) pelo nome que você utilizou 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> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL da solicitação) pelo nome que você utilizou na etapa de criação da lista.
  4. Substitua <your_item_id> pelo valor da ID do blocklistItem. Esse é o valor do campo "blocklistItemId" de Adicionar blocklistItem ou Obter todos os blocklistItems de chamadas à API.
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 utilizado na etapa de criação da lista.
  2. Substitua <your_block_item_id> pela ID de nó do item que você deseja obter.
  3. Execute o script.

Remova blocklistItems de uma lista de bloqueio.

Observação

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

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL da solicitação) pelo nome que você utilizou na etapa de criação da lista.
  4. Substitua <item_id> pelo valor da ID do blocklistItem. Esse é o valor do campo "blocklistItemId" de Adicionar blocklistItem ou Obter todos os blocklistItems de chamadas à API.
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>"
]'

Dica

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

O código de resposta deve ser 204.

Excluir uma lista e todo seu conteúdo

Observação

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

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

  1. Substitua <endpoint> pela URL do ponto de extremidade.
  2. Substitua <enter_your_key_here> pela sua chave.
  3. Substitua <your_list_name> (na URL da solicitação) pelo nome que você utilizou 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óximas etapas

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