在 Azure OpenAI 中使用阻止列表

在本文中

  1. 先决条件
  2. 使用阻止列表
  3. 在 Azure OpenAI Studio 中使用阻止列表

可配置的内容过滤器足以满足大多数内容审核需求。但是,您可能需要过滤特定于您的用例的术语。

先决条件

使用阻止列表、

您可以使用 Azure OpenAI API 创建阻止列表。以下步骤可帮助您入门。

获取您的代币


​​​​​​​Bash

az account get-access-token

创建或修改阻止列表

将下面的 cURL 命令复制到文本编辑器并进行以下更改:

  • Azure 订阅。免费创建一个
  • 获得 Azure 订阅后,请在 Azure 门户中创建 Azure OpenAI 资源以获取令牌、密钥和终结点。输入资源的唯一名称,选择您在申请表中输入的订阅,选择资源组、支持的区域和支持的定价层。然后选择创建
    • 该资源需要几分钟的时间来部署。完成后,选择转到资源。在左窗格中的“资源管理”下,选择“订阅密钥”和“端点”。端点和任一密钥用于调用 API。
  • 已安装Azure CLI
  • 已安装cURL
  • 将 {subscriptionId} 替换为您的订阅 ID。
  • 将 {resourceGroupName} 替换为您的资源组名称。
  • 将 {accountName} 替换为您的资源名称。
  • 将 {raiBlocklistName}(在 URL 中)替换为列表的自定义名称。允许的字符:0-9, A-Z, a-z, - . _ ~.
  • 将 {token} 替换为您在上述“获取令牌”步骤中获得的令牌。
  • (可选)将“描述”字段的值替换为自定义描述。

Bash

curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2023-10-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "description": "This is a prompt blocklist"  
    } 
}'

响应代码应该是201(创建新列表)或200(更新现有列表)。

将阻止列表应用于内容过滤器

如果您尚未创建内容过滤器,则可以在 Studio 左侧的“内容过滤器”选项卡中进行创建。为了使用阻止列表,请确保将此内容筛选器应用于 Azure OpenAI 部署。您可以在左侧的“部署”选项卡中执行此操作。

要将完成阻止列表应用于内容过滤器,请使用以下 cURL 命令:

  1. 将 {subscriptionId} 替换为您的子 ID。
  2. 将 {resourceGroupName} 替换为您的资源组名称。
  3. 将 {accountName} 替换为您的资源名称。
  4. 将 {raiPolicyName} 替换为您的内容过滤器的名称
  5. 将 {token} 替换为您在上述“获取令牌”步骤中获得的令牌。
  6. 将正文中的“raiBlocklistName”替换为列表的自定义名称。允许的字符:0-9, A-Z, a-z, - . _ ~.\

Bash

curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2023-10-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "basePolicyName": "Microsoft.Default", 
        "completionBlocklists": [{ 
            "blocklistName": "raiBlocklistName", 
            "blocking": true 
        }], 
        "contentFilters": [ ] 
    } 
}'

将块项目添加到列表中

 笔记

一个列表中最多允许包含 10,000 个术语。

将下面的 cURL 命令复制到文本编辑器并进行以下更改:

  1. 将 {subscriptionId} 替换为您的子 ID。
  2. 将 {resourceGroupName} 替换为您的资源组名称。
  3. 将 {accountName} 替换为您的资源名称。
  4. 将 {raiBlocklistName}(在 URL 中)替换为列表的自定义名称。允许的字符:0-9, A-Z, a-z, - . _ ~.
  5. 将 {raiBlocklistItemName} 替换为列表项的自定义名称。
  6. 将 {token} 替换为您在上述“获取令牌”步骤中获得的令牌。
  7. 将字段的值替换"blocking pattern"为您要添加到阻止列表中的项目。 blockItem 的最大长度为 1000 个字符。还指定模式是正则表达式还是完全匹配。
Bash
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2023-10-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{  
    "properties": {  
        "pattern": "blocking pattern",  
        "isRegex": false  
    }  
}'

 笔记

将新术语添加到阻止列表可能需要大约 5 分钟的时间。请5分钟后测试。

响应代码应该是200.

JSON

  "name": "raiBlocklistItemName"
  "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName", 
  "properties":
    "pattern": "blocking pattern"
    "isRegex": false 
  } 
}

使用阻止列表分析文本

现在您可以测试具有阻止列表的部署。最简单的方法是在Azure OpenAI Studio中。如果内容在提示或完成时被阻止,您应该看到一条错误消息,指出内容过滤系统已被触发。

有关调用 Azure OpenAI 端点的说明,请访问快速入门

在下面的示例中,带有阻止列表的 GPT-35-Turbo 部署正在阻止提示。响应返回一个400错误。

JSON


    "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" 
                } 
            } 
        } 
    } 
}

如果完成本身被阻止,则响应返回200,因为完成仅在阻止列表内容匹配时才会中断。注释显示匹配了阻止列表。

JSON

{

    "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

    }

}

在 Azure OpenAI Studio 中使用阻止列表

你还可以在 Azure OpenAI Studio 中创建自定义阻止列表,作为内容过滤配置(公共预览版)的一部分。有关如何创建自定义内容过滤器的说明可以在此处找到。以下步骤演示如何通过 Azure OpenAI Studio 创建自定义阻止列表作为内容筛选器的一部分。

  1. 选择“内容过滤器”选项卡旁边的“阻止列表”选项卡。

2.选择创建阻止列表

3.为阻止列表创建一个名称,添加描述并选择“创建”。

4.创建自定义阻止列表后,选择它,然后选择添加术语

5.添加应过滤的术语,然后选择“创建”。您还可以创建正则表达式

6.您可以编辑和删除阻止列表中的每个术语

  • 阻止列表准备就绪后,导航到内容过滤器(预览)部分并创建新的自定义内容过滤器配置。这将打开一个包含多个 AI 内容安全组件的向导。您可以在此处找到有关如何配置主要过滤器和可选型号的更多信息。转到添加阻止列表(可选)。
  • 您现在将看到所有可用的阻止列表。有两种类型的阻止列表 - 您创建的阻止列表和 Microsoft 提供的预构建的阻止列表,在本例中为亵渎性阻止列表(英文)
  • 现在,您可以决定要在内容过滤配置中包含哪些可用的阻止列表,并且可以选择它是否应应用于并过滤提示、完成或两者。在下面的示例中,我们将刚刚创建的 CustomBlocklist1 应用到提示和完成,并将亵渎阻止列表仅应用到完成。最后一步是单击“下一步”检查并完成内容过滤配置。
  • 您可以随时返回并编辑您的配置。准备就绪后,选择“创建内容过滤器”。包含阻止列表的新配置现在可以应用于部署。详细说明可以在这里找到。

下一步

反馈

即将推出:整个 2024 年,我们将逐步淘汰 GitHub Issues 作为内容反馈机制,并用新的反馈系统取而代之。有关详细信息,请参阅:Provide feedback for Microsoft Learn content - Contributor guide | Microsoft Learn



  •  
  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值