Share via


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:

  1. Substitua {subscriptionId} pela ID de sua assinatura.
  2. Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
  3. Substitua {accountName} pelo nome de seu recurso.
  4. Substitua {raiBlocklistName} (na URL) por um nome personalizado para sua lista. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  5. Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
  6. 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:

  1. Substitua {subscriptionId} pela ID de sua assinatura.
  2. Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
  3. Substitua {accountName} pelo nome de seu recurso.
  4. Substitua {raiPolicyName} pelo nome do seu Filtro de Conteúdo
  5. Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
  6. 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:

  1. Substitua {subscriptionId} pela ID de sua assinatura.
  2. Substitua {resourceGroupName} pelo nome de seu grupo de recursos.
  3. Substitua {accountName} pelo nome de seu recurso.
  4. Substitua {raiBlocklistName} (na URL) por um nome personalizado para sua lista. Caracteres permitidos: 0-9, A-Z, a-z, - . _ ~.
  5. Substitua {raiBlocklistName} por um nome personalizado para seu item de lista.
  6. Substitua {token} pelo token que você obteve na etapa "Obter seu token" acima.
  7. 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.

  1. Selecione a guia Listas de Bloqueio ao lado da guia Filtros de conteúdo. screenshot of blocklist selection.
  2. Selecione Criar listas de bloqueio Screenshot of blocklist create selection.
  3. Crie um nome para sua lista de bloqueio, adicione uma descrição e selecione Criar. Screenshot of blocklist naming.
  4. Selecione sua lista de bloqueio personalizada uma vez criada e depois selecione Adicionar termo. Screenshot of custom blocklist add term.
  5. Adicione um termo que deve ser filtrado e selecione Criar. Você também pode criar uma regex. Screenshot of custom blocklist add item.
  6. Você pode Editar e Excluir cada termo em sua lista de bloqueio. Screenshot of custom blocklist edit.
  7. 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).
  8. 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)
  9. Agora você pode decidir quais das listas de bloqueio disponíveis você gostaria de incluir na sua configuração de filtragem de conteúdo e pode selecionar se ela deve ser aplicada e filtrar prompts, conclusões ou ambos. No exemplo abaixo, aplicamos CustomBlocklist1 que acabamos de criar para prompts e conclusões, e a lista de bloqueio Profanity somente para conclusões. A última etapa é examinar e concluir a configuração de filtragem de conteúdo clicando em Avançar. Screenshot of filtering configuration management.
  10. 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