你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

导入 Azure OpenAI API

适用于:所有 API 管理层级

本文介绍了将 Azure OpenAI 服务 API 作为 REST API 导入 API 管理实例的两个选项:

先决条件

  • 现有的 API 管理实例。 如果还没有实例,请创建一个

  • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限。 可以通过在 https://aka.ms/oai/access 上填写表单来申请对 Azure OpenAI 的访问权限。 如果有任何问题,请在此存储库上提出问题以联系我们。

  • 已部署模型的 Azure OpenAI 资源。 有关模型部署的详细信息,请参阅资源部署指南

    记下部署的 ID(名称)。 在 API 管理中测试导入的 API 时,需要用到它。

  • 从 API 管理实例授予对 Azure OpenAI 资源的访问权限的权限。

选项 1. 从 Azure OpenAI 服务导入 API

可以直接从 Azure OpenAI 服务将 Azure OpenAI API 导入 API 管理。 导入 API 时,API 管理会自动配置:

  • 每个 Azure OpenAI REST API 终结点的操作。
  • 系统分配的标识,其具有访问 Azure OpenAI 资源所需的权限。
  • 后端资源和 set-backend-service 策略,用于将 API 请求定向到 Azure OpenAI 服务终结点。
  • authentication-managed-identity 策略,可以使用实例的系统分配标识向 Azure OpenAI 资源进行身份验证。
  • (可选)用于帮助监视和管理 Azure OpenAI API 使用的令牌消耗的策略。

若要将 Azure OpenAI API 导入 API 管理:

  1. Azure 门户,导航到 API 管理实例。

  2. 在左侧菜单中的 API 下,选择 API>+ 添加 API

  3. 在“从 Azure 资源创建”下,选择 Azure OpenAI 服务

    在门户中通过 Azure OpenAI 服务创建 API 的屏幕截图。

  4. 在“基本信息”选项卡上:

    1. 选择要导入的 Azure OpenAI 资源。

    2. (可选)选择 Azure OpenAI API 版本。 如果未进行选择,则会默认使用最新的生产就绪 REST API 版本。

    3. 输入 API 的显示名称和(可选)说明

    4. 基础 URL 中,追加 API 管理实例用于访问 Azure OpenAI API 终结点的路径。 如果启用“确保 OpenAI SDK 兼容性”(建议启用),则 /openai 会自动追加到基础 URL。

      例如,如果 API 管理网关终结点 https://contoso.azure-api.net,请设置类似于 https://contoso.azure-api.net/my-openai-api/openai基础 URL

    5. (可选)选择要与 API 关联的一个或多个产品。 选择下一步

  5. 在“策略”选项卡上,可以选择启用策略来监视和管理 Azure OpenAI API 令牌消耗。 如果选中,请输入设置或接受用于定义 API 的 azure-openai-token-limitazure-openai-emit-token-metric 策略的默认值。 也可以稍后设置或更新该策略配置。 选择“查看 + 创建” 。

  6. 验证设置后,选择“创建”。

选项 2. 将 OpenAPI 规范添加到 API 管理

或者,手动下载 Azure OpenAI REST API 的 OpenAPI 规范,并将其作为 OpenAPI API 添加到 API 管理。

下载 OpenAPI 规范

下载 Azure OpenAI REST API 的 OpenAPI 规范,例如 2024-02-01 GA 版本

  1. 在文本编辑器中,打开下载的规范文件。

  2. 在规范中的 servers 元素中,将 Azure OpenAI 服务终结点的名称替换为规范中 urldefault 终结点的占位符值。 例如,如果 Azure OpenAI 服务终结点为 contoso.openai.azure.com,请使用以下值更新 servers 元素:

    • url: https://contoso.openai.azure.com/openai
    • 默认终结点:contoso.openai.azure.com
    [...]
    "servers": [
        {
          "url": "https://contoso.openai.azure.com/openai",
          "variables": {
            "endpoint": {
              "default": "contoso.openai.azure.com"
            }
          }
        }
      ],
    [...]
    
  3. 记下规范中 API version 的值。 需要它以测试 API。 示例:2024-02-01

将 OpenAPI 规范添加到 API 管理

  1. Azure 门户,导航到 API 管理实例。
  2. 在左侧菜单中,选择“API”>“+ 添加 API”。
  3. 在“定义新的 API”下,选择“OpenAPI”。 输入 API 的显示名称名称
  4. 输入以 /openai 结尾的 API URL 后缀,以访问 API 管理实例中的 Azure OpenAI API 终结点。 示例:my-openai-api/openai
  5. 选择创建

API 导入并显示 OpenAPI 规范中的操作。

配置 Azure OpenAI API 的身份验证

若要向 Azure OpenAI API 进行身份验证,请提供 API 密钥或托管标识。 如果直接将 Azure OpenAI API 导入 API 管理实例,则会自动配置使用 API 管理实例的托管标识进行身份验证。

如果从其 OpenAPI 规范添加了 Azure OpenAI API,则需要配置身份验证。 有关使用 API 管理策略配置身份验证的详细信息,请参阅 对 Azure OpenAI API 进行身份验证和授权

测试 Azure OpenAI API

若要确保 Azure OpenAI API 按预期工作,请在 API 管理控制台中对其进行测试。 需要提供 Azure OpenAI 资源中配置的模型部署 ID(名称),以测试 API。

  1. 选择上一步中创建的 API。

  2. 选择“测试”选项卡。

  3. 选择与在 Azure OpenAI 资源中部署的模型兼容的操作。 该页将显示查询参数和标头的字段。

  4. 模板参数中,输入以下值:

    • deployment-id - Azure OpenAI 服务中部署的 ID
    • api-version - 有效的 Azure OpenAI API 版本,例如导入 API 时选择的 API 版本。 在门户中测试 Azure OpenAI 服务 API 的屏幕截图。
  5. 根据需要输入其他参数和标头。 根据操作,可能需要配置或更新请求正文

    注意

    在测试控制台中,API 管理自动填充 Ocp-Apim-Subscription-Key 标头,并配置内置全访问订阅的订阅密钥。 此密钥允许访问 API 管理实例中的每个 API。 可选择性地通过选择 HTTP 请求旁的“眼睛”图标来显示 Ocp-Apim-Subscription-Key 标头。

  6. 选择“发送”。

    当测试成功时,后端会使用成功的 HTTP 响应代码和某些数据进行响应。 追加到响应中是令牌使用情况数据,可帮助你监视和管理 Azure OpenAI API 消耗量。 门户中 API 响应中的令牌使用情况数据的屏幕截图。

Azure OpenAI API 的缓存策略

除了导入 Azure OpenAI 服务 API 时可以配置的 azure-openai-token-limitazure-openai-emit-token-metric 策略外,API 管理还提供以下缓存策略来帮助优化 Azure OpenAI API 的性能并减少延迟:

  • azure-openai-semantic-cache-store
  • azure-openai-semantic-cache-lookup