一种更简单的关闭 Azure OpenAI 内容筛选器的方法

2024/03/22 更新:该方法已失效。

Azure OpenAI 默认启用的内容筛选器会影响正常的流式输出(模型的输出需要等待集齐若干个字符、等待内容筛选器处理完成后才输出,而不是立即逐字符输出)。要得到接近 OpenAI API 的流式输出性能,需要关闭 Azure 默认开启的内容筛选器。目前 Azure 提供了关闭内容筛选器的选项,但这种做法需要向 Azure 提出申请(参考 Azure 文档 中的说明)并等待审批通过才能使用。

在之前的一篇 文章 中,我们讨论过一种手动抓包、修改请求并重放的方法以修改 Azure OpenAI 内容筛选器的设置,实现免申请关闭内容筛选器;但这种做法比较复杂,本文会给出一种更简单的方法,只需要安装 Tampermonkey 和一个用户脚本。

前提条件

  1. 在浏览器中安装 Tampermonkey 扩展程序

操作步骤

  1. 在 Tampermonkey 中安装用户脚本 Azure OpenAI Modified Filters 隐藏选项开放 并启用
  2. 创建一个不影响流式输出的自定义内容筛选器

    1. 登录 Azure OpenAI Studio
    2. 选择左侧边栏 管理 下的 内容筛选器(预览)
    3. 内容筛选配置 页面,点击 创建自定义内容筛选器
    4. 填写 创建自定义配置名称
    5. 将右侧的 筛选器和批注 关闭(该选项仅在启用了前面提供的用户脚本,或者通过了 Azure 的关闭内容筛选器申请的情况下可见)
    6. 一直点 下一步 直到最后一个步骤
    7. 在最后一步点击 创建内容筛选器

  3. 修改模型部署,使其使用前一步骤创建的自定义内容筛选器

    1. 选择左侧边栏 管理 下的 部署
    2. 在模型部署列表中,选择一个模型部署
    3. 点击 编辑部署
    4. 点击 高级选项
    5. 内容筛选器 下拉框中选择我们刚刚创建的内容筛选器
    6. 点击 保存并关闭

原理

Azure OpenAI Studio 会请求一个 API 接口查询当前用户是否通过了关闭内容筛选器的申请,仅当申请通过时展示相关的表单选项。本文描述的步骤通过 Tampermonkey 注入一个用户脚本,这个脚本会拦截这个请求并重写它的响应,使得 Azure OpenAI Studio 页面认为当前用户已通过关闭内容筛选器的申请。又因为创建、修改内容筛选器的接口不会二次验证这个申请的通过状态,所以可以达成关闭内容筛选器的目的。