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

创建和部署 Azure OpenAI 服务资源

本文介绍如何开始使用 Azure OpenAI 服务,并提供创建资源和部署模型的分步说明。 可通过多种不同方式在 Azure 中创建资源:

  • Azure 门户
  • REST API、Azure CLI、PowerShell 或客户端库
  • Azure 资源管理器 (ARM) 模板

在本文中,可查看在 Azure 门户中以及使用 Azure CLI 创建和部署资源的示例。

先决条件

注意

目前,必须提交应用程序才能访问 Azure OpenAI 服务。 若要申请访问权限,请填写此表单。 如果需要帮助,请在此存储库中提出问题以联系 Microsoft。

创建资源

以下步骤演示如何在 Azure 门户中创建 Azure OpenAI 资源。

识别资源

  1. 在 Azure 门户中使用你的 Azure 订阅登录。

  2. 选择“创建资源”并搜索“Azure OpenAI”。 找到该服务后,选择“创建”。

    屏幕截图显示如何在 Azure 门户中创建新的 Azure OpenAI 服务资源。

  3. 在“创建 Azure OpenAI”页面上,为“基础知识”选项卡上的字段提供以下信息:

    字段 说明
    订阅 Azure OpenAI 服务加入应用程序中使用的 Azure 订阅。
    资源组 包含 Azure OpenAI 资源的 Azure 资源组。 可以创建新组或使用预先存在的组。
    区域 实例的位置。 位置不同可能会导致延迟,但不会影响资源的运行时可用性。
    Name Azure OpenAI 服务资源的描述性名称,例如 MyOpenAIResource。
    定价层 资源的定价层。 目前,Azure OpenAI 服务仅提供标准层。 有关定价的详细信息,请访问 Azure OpenAI 定价页

    显示如何在 Azure 门户中配置 Azure OpenAI 资源的屏幕截图。

  4. 选择下一步

配置网络安全

“网络”选项卡提供了三个安全“类型”选项:

  • 选项 1:所有网络(包括 Internet)均可访问此资源。
  • 选项 2:选择网络后,为 Azure AI 服务资源配置网络安全。
  • 选项 3:禁用后,任何网络都无法访问此资源。可以配置专用终结点连接,这将是访问此资源的唯一方式。

显示 Azure 门户中 Azure OpenAI 资源的网络安全选项的屏幕截图。

根据选择的选项,可能需要提供其他信息。

选项 1:允许所有网络

第一个选项允许所有网络(包括 Internet)访问资源。 此选项是默认设置。 此选项不需要额外的设置。

选项 2:仅允许特定网络

第二个选项可让你标识可以访问资源的特定网络。 选择此选项时,页面会更新为包含以下必填字段:

字段 说明
虚拟网络 指定允许访问资源的虚拟网络。 可以在 Azure 门户中编辑默认虚拟网络名称。
子网 指定允许访问资源的子网。 可以在 Azure 门户中编辑默认子网名称。

屏幕截图显示如何为 Azure OpenAI 资源配置网络安全以仅允许特定网络。

“防火墙”部分提供了一个可选的“地址范围”字段,可用于配置资源的防火墙设置。

选项 3:禁用网络访问

第三个选项可让你禁用对资源的网络访问。 选择此选项时,页面会更新为包含“专用终结点”表。

显示如何在 Azure 门户中为 Azure OpenAI 资源禁用网络安全的屏幕截图。

你可以选择添加专用终结点来访问你的资源。 选择“添加专用终结点”,然后完成终结点配置。

确认配置并创建资源

  1. 选择“下一步”,并根据需要为资源配置任何标记。

  2. 选择“下一步”,转到流程中的最后阶段:“查看 + 提交”。

  3. 确认你的配置设置,然后选择“创建”。

当新资源可用时,Azure 门户会显示通知。

部署模型

在生成文本或推理之前,需要先部署一个模型。 可以从 Azure OpenAI Studio 中的多个可用模型中进行选择。

若要部署模型,请执行以下步骤:

  1. 登录到 Azure OpenAI Studio

  2. 选择要使用的订阅和 Azure OpenAI 资源,然后选择“使用资源”。

  3. 在“管理”下,选择“部署”。

  4. 选择“创建新部署”并配置以下字段:

    字段 说明
    选择模型 模型可用性因区域而异。 有关每个区域的可用模型的列表,请参阅模型摘要表和区域可用性
    部署名称 请谨慎选择名称。 部署名称在代码中使用,通过使用客户端库和 REST API 调用模型。
    高级选项(可选) 可以根据需要为资源设置可选高级设置。
    - 对于内容筛选器,请为部署分配内容筛选器。
    - 对于每分钟标记数速率上限,请调整每分钟标记数 (TPM),为你的部署设置有效的速率上限。 可以随时通过使用“配额”菜单来修改此值。 动态配额可让你在有额外容量时利用更多配额。
  5. 从下拉列表中选择一个模型。

  6. 输入部署名称以识别模型。

    重要

    通过 API 访问模型时,需要在 API 调用中引用部署名称而不是基础模型名称,这是 OpenAI 和 Azure OpenAI 之间的主要区别之一。 OpenAI 只需要模型名称。 即使使用了模型参数,Azure OpenAI 也始终需要部署名称。 在我们的文档中,经常有一些示例,其中部署名称表示为与模型名称相同的名称,这样有助于指示哪个模型适用于特定 API 终结点。 最终,部署名称可以遵循最适合你的用例的任何命名约定。

  7. 对于你的第一个部署,请将“高级选项”设置为默认值。

  8. 选择创建

部署表会显示与新建模型相对应的新条目。

部署完成后,模型部署状态更改为“成功”。

先决条件

注意

目前,必须提交应用程序才能访问 Azure OpenAI 服务。 若要申请访问权限,请填写此表单。 如果需要帮助,请在此存储库中提出问题以联系 Microsoft。

登录 Azure CLI

登录 Azure CLI 或在以下步骤中选择“打开 Cloudshell”。

创建 Azure 资源组

要创建 Azure OpenAI 资源,你需要一个 Azure 资源组。 通过 Azure CLI 创建新资源时,还可以创建新资源组或指示 Azure 使用现有组。 以下示例演示如何使用 az group create 命令创建名为 OAIResourceGroup 的新资源组。 该资源组是在美国东部位置创建的。

az group create \
--name OAIResourceGroup \
--location eastus

创建资源

使用 az recognizeservices account create 命令在资源组中创建 Azure OpenAI 资源。 在以下示例中,在 OAIResourceGroup 资源组中创建名为 MyOpenAIResource 的资源。 尝试该示例时,请更新代码以将所需的值用于资源组和资源名称,以及 Azure 订阅 ID <subscriptionID>。

az cognitiveservices account create \
--name MyOpenAIResource \
--resource-group OAIResourceGroup \
--location eastus \
--kind OpenAI \
--sku s0 \
--subscription <subscriptionID>

检索有关资源的信息

创建资源后,可以使用不同的命令查找有关 Azure OpenAI 服务实例的有用信息。 以下示例演示如何检索新资源的 REST API 终结点基 URL 和访问密钥。

获取终结点 URL

使用 az recognizeservices account show 命令检索资源的 REST API 终结点基 URL。 在此示例中,我们通过 jq JSON 处理器来引导命令输出,以查找 .properties.endpoint 值。

尝试该示例时,请更新代码以使用资源组 <myResourceGroupName> 和资源 <myResourceName> 的值。

az cognitiveservices account show \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
| jq -r .properties.endpoint

获取主 API 密钥

要检索资源的访问密钥,请使用 az recognizeservices account key list 命令。 在此示例中,我们通过 jq JSON 处理器来引导命令输出,以查找 .key1 值。

尝试该示例时,请更新代码以使用资源组和资源的值。

az cognitiveservices account keys list \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
| jq -r .key1

部署模型

要部署模型,请使用 az cognitiveservices account deployment create 命令。 在以下示例中,部署 text-embedding-ada-002 模型的实例,并将其命名为 MyModel。 尝试该示例时,请更新代码以使用资源组和资源的值。 无需更改 model-versionmodel-formatsku-capacitysku-name 值。

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyModel \
--model-name text-embedding-ada-002 \
--model-version "1"  \
--model-format OpenAI \
--sku-capacity "1" \
--sku-name "Standard"

重要

通过 API 访问模型时,需要在 API 调用中引用部署名称而不是基础模型名称,这是 OpenAI 和 Azure OpenAI 之间的主要区别之一。 OpenAI 只需要模型名称。 即使使用了模型参数,Azure OpenAI 也始终需要部署名称。 在我们的文档中,经常有一些示例,其中部署名称表示为与模型名称相同的名称,这样有助于指示哪个模型适用于特定 API 终结点。 最终,部署名称可以遵循最适合你的用例的任何命名约定。

从资源中删除模型

可以使用 az cognitiveservices account deployment delete 命令删除从资源部署的任何模型。 在以下示例中,删除名为 MyModel 的模型。 尝试该示例时,请更新代码以使用资源组、资源和部署的模型的值。

az cognitiveservices account deployment delete \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyModel

删除资源

如果要在这些练习后进行清理,可以通过 Azure CLI 删除资源,从而移除 Azure OpenAI 资源。 还可以删除资源组。 如果选择删除资源组,则会同时删除该组中包含的所有资源。

要移除资源组及其关联的资源,请使用 az cognitiveservices account delete 命令。

如果不打算继续使用在这些练习中创建的资源,请运行以下命令以删除资源组。 请务必更新示例代码以使用资源组和资源的值。

az cognitiveservices account delete \
--name <myResourceName> \
--resource-group  <myResourceGroupName>

先决条件

注意

目前,必须提交应用程序才能访问 Azure OpenAI 服务。 若要申请访问权限,请填写此表单。 如果需要帮助,请在此存储库中提出问题以联系 Microsoft。

登录到 Azure PowerShell

登录 Azure PowerShell 或在以下步骤中选择“打开 Cloudshell”。

创建 Azure 资源组

要创建 Azure OpenAI 资源,你需要一个 Azure 资源组。 通过 Azure PowerShell 创建新资源时,还可以创建新资源组或指示 Azure 使用现有组。 以下示例演示如何使用 New-AzResourceGroup 命令创建名为 OAIResourceGroup 的新资源组。 该资源组是在美国东部位置创建的。

New-AzResourceGroup -Name OAIResourceGroup -Location eastus

创建资源

使用 New-AzCognitiveServicesAccount 命令在资源组中创建 Azure OpenAI 资源。 在以下示例中,在 OAIResourceGroup 资源组中创建名为 MyOpenAIResource 的资源。 尝试该示例时,请更新代码以将所需的值用于资源组和资源名称,以及 Azure 订阅 ID <subscriptionID>。

New-AzCognitiveServicesAccount -ResourceGroupName OAIResourceGroup -Name MyOpenAIResource -Type OpenAI -SkuName S0 -Location eastus

检索有关资源的信息

创建资源后,可以使用不同的命令查找有关 Azure OpenAI 服务实例的有用信息。 以下示例演示如何检索新资源的 REST API 终结点基 URL 和访问密钥。

获取终结点 URL

使用 Get-AzCognitiveServicesAccount 命令检索资源的 REST API 终结点基 URL。 在此示例中,我们通过 Select-Object cmdlet 来引导命令输出,以查找 endpoint 值。

尝试该示例时,请更新代码以使用资源组 <myResourceGroupName> 和资源 <myResourceName> 的值。

Get-AzCognitiveServicesAccount -ResourceGroupName OAIResourceGroup -Name MyOpenAIResource |
  Select-Object -Property endpoint

获取主 API 密钥

要检索资源的访问密钥,请使用 Get-AzCognitiveServicesAccountKey 命令。 在此示例中,我们通过 Select-Object cmdlet 来引导命令输出,以查找 Key1 值。

尝试该示例时,请更新代码以使用资源组 和资源 的值。

Get-AzCognitiveServicesAccountKey -Name MyOpenAIResource -ResourceGroupName OAIResourceGroup |
  Select-Object -Property Key1

部署模型

若要部署模型,请使用 New-AzCognitiveServicesAccountDeployment 命令。 在以下示例中,部署 text-embedding-ada-002 模型的实例,并将其命名为 MyModel。 尝试该示例时,请更新代码以使用资源组和资源的值。 无需更改 model-versionmodel-formatsku-capacitysku-name 值。

$model = New-Object -TypeName 'Microsoft.Azure.Management.CognitiveServices.Models.DeploymentModel' -Property @{
    Name = 'text-embedding-ada-002'
    Version = '2'
    Format = 'OpenAI'
}

$properties = New-Object -TypeName 'Microsoft.Azure.Management.CognitiveServices.Models.DeploymentProperties' -Property @{
    Model = $model
}

$sku = New-Object -TypeName "Microsoft.Azure.Management.CognitiveServices.Models.Sku" -Property @{
    Name = 'Standard'
    Capacity = '1'
}

New-AzCognitiveServicesAccountDeployment -ResourceGroupName OAIResourceGroup -AccountName MyOpenAIResource -Name MyModel -Properties $properties -Sku $sku

重要

通过 API 访问模型时,需要在 API 调用中引用部署名称而不是基础模型名称,这是 OpenAI 和 Azure OpenAI 之间的主要区别之一。 OpenAI 只需要模型名称。 即使使用了模型参数,Azure OpenAI 也始终需要部署名称。 在我们的文档中,经常有一些示例,其中部署名称表示为与模型名称相同的名称,这样有助于指示哪个模型适用于特定 API 终结点。 最终,部署名称可以遵循最适合你的用例的任何命名约定。

从资源中删除模型

可以使用 Remove-AzCognitiveServicesAccountDeployment 命令删除从资源部署的任何模型。 在以下示例中,删除名为 MyModel 的模型。 尝试该示例时,请更新代码以使用资源组、资源和部署的模型的值。

Remove-AzCognitiveServicesAccountDeployment -ResourceGroupName OAIResourceGroup -AccountName MyOpenAIResource -Name MyModel

删除资源

如果要在这些练习后进行清理,可以通过 Azure PowerShell 删除资源,从而移除 Azure OpenAI 资源。 还可以删除资源组。 如果选择删除资源组,则会同时删除该组中包含的所有资源。

要移除资源组及其关联的资源,请使用 Remove-AzCognitiveServicesAccount 命令。

如果不打算继续使用在这些练习中创建的资源,请运行以下命令以删除资源组。 请务必更新示例代码以使用资源组和资源的值。

Remove-AzCognitiveServicesAccount -Name MyOpenAIResource -ResourceGroupName OAIResourceGroup

后续步骤