Use uma lista de bloqueio OpenAI do Azure
Os filtros de conteúdo configuráveis são suficientes para a maioria das necessidades de moderação de conteúdo. No entanto, você pode ter que filtrar os termos específicos para seu caso de uso.
Pré-requisitos
- Uma assinatura do Azure. Crie um gratuitamente.
- Depois de ter sua assinatura do Azure, crie um recurso do OpenAI do Azure no portal do Azure para obter seu token, chave e ponto de extremidade. Insira um nome exclusivo para o recurso, selecione a assinatura inserida no formulário do aplicativo, selecione um grupo de recursos, uma região e o 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.
- CLI do Azure instalada
- cURL instalado
Use listas de bloqueio
Você pode criar listas de bloqueio com a API OpenAI do Azure. As etapas a seguir ajudam a começar.
Obter seu token
Primeiro, você precisa obter um token para acessar as APIs para criação, edição e exclusão de listas de bloqueio. Você também pode obter esse token usando o seguinte comando da CLI do Azure:
az account get-access-token
Criar ou modificar uma lista de bloqueados
Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:
- Substitua {subscriptionId} pela ID de sua assinatura.
- Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
- Substitua {accountName} pelo nome de seu recurso.
- Substitua {raiBlocklistName} (na URL) por um nome personalizado para sua lista. Caracteres permitidos:
0-9, A-Z, a-z, - . _ ~
. - Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
- Opcionalmente, substitua o valor do campo "descrição" por uma descrição personalizada.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-03-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"description": "This is a prompt blocklist"
}
}'
O código de resposta deve ser 201
(criou uma nova lista) ou 200
(atualizou uma lista existente).
Aplicar uma lista de bloqueio a um filtro de conteúdo
Se você ainda não criou um filtro de conteúdo, você poderá fazê-lo no Studio na guia Filtros de Conteúdo no lado esquerdo. Para usar a lista de bloqueio, certifique-se que esse Filtro de Conteúdo está aplicado a uma implantação do OpenAI do Azure. Você pode fazer isso na guia Implantações no lado esquerdo.
Para aplicar uma lista de bloqueio de conclusão a um filtro de conteúdo, use o seguinte comando cURL:
- Substitua {subscriptionId} pela ID de sua assinatura.
- Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
- Substitua {accountName} pelo nome de seu recurso.
- Substitua {raiPolicyName} pelo nome do seu Filtro de Conteúdo
- Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
- Substitua "raiBlocklistName" no corpo por um nome personalizado para sua lista. Caracteres permitidos:
0-9, A-Z, a-z, - . _ ~
.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2024-03-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"basePolicyName": "Microsoft.Default",
"completionBlocklists": [{
"blocklistName": "raiBlocklistName",
"blocking": true
}],
"contentFilters": [ ]
}
}'
Adicionar blockItems à lista
Observação
Há um limite máximo de 10.000 termos permitidos em uma lista.
Copie o comando cURL abaixo para um editor de texto e faça as seguintes alterações:
- Substitua {subscriptionId} pela ID de sua assinatura.
- Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
- Substitua {accountName} pelo nome de seu recurso.
- Substitua {raiBlocklistName} (na URL) por um nome personalizado para sua lista. Caracteres permitidos:
0-9, A-Z, a-z, - . _ ~
. - Substitua {raiBlocklistName} por um nome personalizado para seu item de lista.
- Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
- Substitua o valor do campo
"blocking pattern"
pelo item que você gostaria de adicionar à sua lista de bloqueados. O comprimento máximo de um blockItem é de 1000 caracteres. Especifique também se o padrão é regex ou correspondência exata.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-03-01-preview' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}'
Observação
Pode levar cerca de 5 minutos para que um novo termo seja adicionado à lista de bloqueio. Teste após 5 minutos.
O código de resposta deve ser 200
.
{
"name": "raiBlocklistItemName",
"id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName",
"properties": {
"pattern": "blocking pattern",
"isRegex": false
}
}
Analisar texto com uma lista de bloqueados
Agora você pode testar sua implantação que tem a lista de bloqueio. A maneira mais fácil de fazer isso é no Studio OpenAI do Azure. Se o conteúdo foi bloqueado no prompt ou na conclusão, você deverá ver uma mensagem de erro informando que o sistema de filtragem de conteúdo foi disparado.
Para obter instruções sobre como chamar os pontos de extremidade do OpenAI do Azure, acesse Início Rápido.
No exemplo abaixo, uma implantação de GPT-35-Turbo com uma lista de bloqueio está bloqueando o prompt. A resposta retorna um erro 400
.
{
"error": {
"message": "The response was filtered due to the prompt triggering Azure OpenAI’s content management policy. Please modify your prompt and retry. To learn more about our content filtering policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400,
"innererror": {
"code": "ResponsibleAIPolicyViolation",
"content_filter_result": {
"custom_blocklists": [
{
"filtered": true,
"id": "raiBlocklistName"
}
],
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
}
}
Se a própria conclusão estiver bloqueada, a resposta retornará 200
, pois a conclusão só será interrompida quando o conteúdo da lista de bloqueio for correspondido. As anotações mostram que uma lista de bloqueio foi correspondida.
{
"id": "chatcmpl-85NkyY0AkeBMunOjyxivQSiTaxGAl",
"object": "chat.completion",
"created": 1696293652,
"model": "gpt-35-turbo",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"choices": [
{
"index": 0,
"finish_reason": "content_filter",
"message": {
"role": "assistant"
},
"content_filter_results": {
"custom_blocklists": [
{
"filtered": true,
"id": "myBlocklistName"
}
],
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"usage": {
"completion_tokens": 75,
"prompt_tokens": 27,
"total_tokens": 102
}
}
Usar listas de bloqueio no Studio OpenAI do Azure
Você também pode criar listas de bloqueio personalizadas no Studio OpenAI do Azure como parte de suas configurações de filtragem de conteúdo (versão prévia pública). Instruções sobre como criar filtros de conteúdo personalizados podem ser encontradas aqui. As seguintes etapas mostram como criar listas de bloqueio personalizadas como parte de seus filtros de conteúdo por meio do Studio OpenAI do Azure.
- Selecione Filtros de conteúdo no menu à esquerda. Selecione a aba Listas de bloqueio ao lado da aba Filtros de conteúdo. Em seguida, selecione Criar lista de bloqueio.
- Crie um nome para sua lista de bloqueio, adicione uma descrição e selecione Criar lista de bloqueio.
- Selecione sua lista de bloqueio personalizada depois que ela for criada e selecione Adicionar novo termo.
- Adicione um termo que deve ser filtrado e selecione Criar. Você também pode criar uma regex.
- Você pode excluir cada termo da sua lista de bloqueio.
- Quando a lista de bloqueios estiver pronta, navegue até a seção Filtros de conteúdo (Versão prévia) e crie uma nova configuração de filtro de conteúdo personalizado. Isso abre um assistente com vários componentes de segurança de conteúdo de IA. Você pode encontrar mais informações sobre como configurar os filtros principais e modelos opcionais aqui. Vá até Adicionar lista de bloqueio (Opcional).
- Agora você verá todas as listas de bloqueio disponíveis. Há dois tipos de listas de bloqueio - as listas de bloqueio que você criou e listas de bloqueio predefinidas que a Microsoft fornece, nesse caso, uma lista de bloqueios Profanity (inglês)
- Agora você pode decidir qual das listas de bloqueio disponíveis deseja incluir na sua configuração de filtragem de conteúdo. No exemplo abaixo, aplicamos CustomBlocklist1 que acabamos de criar. A última etapa é examinar e concluir a configuração de filtragem de conteúdo clicando em Avançar.
- Você sempre pode voltar e editar sua configuração. Quando tudo estiver pronto, selecione Criar filtro de conteúdo. A nova configuração que inclui suas listas de bloqueio agora pode ser aplicada a uma implantação. As instruções detalhadas são encontradas aqui.
Próximas etapas
Saiba mais sobre as práticas de IA Responsável para o OpenAI do Azure: Visão geral das práticas de IA Responsável para os modelos do OpenAI do Azure.
Leia mais sobre as categorias de filtragem de conteúdo e níveis de gravidade com o Serviço OpenAI do Azure.
Saiba mais sobre a formação de agrupamentos vermelhos em nosso artigo: Introdução aos modelos de linguagem grande (LLMs) do agrupamento vermelho.