对模型执行方式感到满意后,就可以部署并用于识别文本中的实体。 部署模型,使其可通过预测 API 使用。
Prerequisites
有关详细信息, 请参阅项目开发生命周期。
部署模型
在检查模型的性能并确认它适合在您的环境中使用后,您需要将其分配到一个部署中。 将模型分配给部署会使其可通过预测 API 使用。 建议创建一个名为 “生产 ”的部署,以便为其分配到目前为止构建的最佳模型,并在系统中使用它。 你可以创建另一个名为 staging 的部署,可将当前正在使用的模型分配给该部署,以便能够对其进行测试。 项目中最多可以有 10 个部署。
有关如何在 Azure AI Foundry 中部署自定义模型的信息, 请参阅部署微调的模型 。
提交部署作业
使用以下 URL、标头和 JSON 正文提交 PUT 请求以提交部署作业。 将以下占位符值替换为你自己的值。
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 |
myProject |
{DEPLOYMENT-NAME} |
部署的名称。 此值区分大小写。 |
staging |
{API-VERSION} |
要调用的 API 的版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 |
2022-05-01 |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
请求正文
在请求正文中使用以下 JSON。 使用要分配给部署的模型名称。
{
"trainedModelLabel": "{MODEL-NAME}"
}
| 密钥 |
占位符 |
值 |
示例 |
| trainedModelLabel |
{MODEL-NAME} |
将要分配给部署的模型名称。 只能分配已成功训练的模型。 此值区分大小写。 |
myModel |
发送 API 请求后,你将收到 202 响应,这表明作业已正确提交。 在响应头中,提取 operation-location 值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} 用于标识请求,因为此操作是异步操作。 可使用此 URL 获取部署状态。
获取部署作业状态
使用以下 GET 请求来查询部署作业的状态。 可以使用在上一步中收到的 URL,或者将下面的占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 |
myProject |
{DEPLOYMENT-NAME} |
部署的名称。 此值区分大小写。 |
staging |
{JOB-ID} |
用于查找模型训练状态的 ID。 它包含在上一步骤中收到的 location 标头值中。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 的版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 |
2022-05-01 |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。 应获取一个 200 代码来指示请求的成功。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
交换部署
完成对分配给一个部署的模型的测试后,如果想将该模型分配给另一个部署,可以将这两个部署进行交换。 交换部署涉及获取分配给第一个部署的模型,并将其分配给第二个部署。 然后获取分配给第二个部署的模型并将其分配给第一个部署。 想要将分配给 staging 的模型分配给 production 时,可以使用此过程交换 production 和 staging 部署。
若要替换已部署的模型,可以将部署的模型与同一区域中的不同模型交换:
在 “名称” 下选择模型名称,然后选择“ 部署模型”。
选择 交换模型。
重新部署需要数分钟才能完成。 在此期间,部署的模型将继续可用于翻译 API,直到此过程完成。
使用以下 URL、标头和 JSON 正文创建 POST 请求,以启动交换部署作业。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/:swap?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的模型版本。 |
2022-05-01 |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
请求正文
{
"firstDeploymentName": "{FIRST-DEPLOYMENT-NAME}",
"secondDeploymentName": "{SECOND-DEPLOYMENT-NAME}"
}
| 密钥 |
占位符 |
值 |
示例 |
| firstDeploymentName |
{FIRST-DEPLOYMENT-NAME} |
第一个部署的名称。 此值区分大小写。 |
production |
| secondDeploymentName |
{SECOND-DEPLOYMENT-NAME} |
第二个部署的名称。 此值区分大小写。 |
staging |
当你发送 API 请求后,将收到指示成功的 202 响应。
删除部署
如果不再需要项目,可以从 Azure AI Foundry 将其删除。
- 导航到 Azure AI Foundry 主页。 除非已完成此步骤且会话处于活动状态,否则请通过登录来启动身份验证过程。
- 选择要从 Azure AI Foundry 的“持续构建”中删除的项目
- 选择“管理中心”。
- 选择“ 删除项目”。
删除中心及其所有项目:
导航到“中心”部分的“概述”选项卡。
在右侧,选择 “删除中心”。
该链接将打开 Azure 门户,以便删除中心。
使用以下 URL、标头和 JSON 正文创建 DELETE 请求,以删除部署。
请求 URL
{Endpoint}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{deploymentName}?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{DEPLOYMENT-NAME} |
部署名称。 此值区分大小写。 |
prod |
{API-VERSION} |
要调用的 API 的版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 |
2022-05-01 |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
发送 API 请求后,将收到一个指示成功的 202 响应,这意味着部署已被删除。 带有用于检查作业状态的 Operation-Location 标头的成功调用结果。
分配部署资源
可以通过分配存在于不同区域中的不同语言资源来将项目部署到多个区域。
以编程方式分配部署资源需要进行 Microsoft Entra 身份验证。 Microsoft Entra ID 用于确认你是否有权访问你想要分配到项目以进行多区域部署的资源。 若要在发出 REST API 调用时以编程方式使用 Microsoft Entra 身份验证,请参阅 Azure AI 服务文档中的详细信息。
分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求以分配部署资源。
请求 URL
创建 API 请求时,请使用以下 URL。 将以下占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/:assign?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 版本。 |
2022-10-01-preview |
使用 Microsoft Entra 身份验证对此 API 进行身份验证。
Body
使用以下示例 JSON 作为正文。
{
"resourcesMetadata": [
{
"azureResourceId": "{AZURE-RESOURCE-ID}",
"customDomain": "{CUSTOM-DOMAIN}",
"region": "{REGION-CODE}"
}
]
}
| 密钥 |
占位符 |
值 |
示例 |
azureResourceId |
{AZURE-RESOURCE-ID} |
要分配的完整资源 ID 路径。 可以在 Azure 门户中资源的“属性”选项卡下的“资源 ID”字段中找到。 |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource |
customDomain |
{CUSTOM-DOMAIN} |
要分配的资源的自定义子域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下找到,它作为 URL https://<your-custom-subdomain>.cognitiveservices.azure.com/ 中的“终结点”字段中显示 |
contosoresource |
region |
{REGION-CODE} |
一个区域代码,用于指定你要分配的资源的区域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下的“位置/区域”字段中找到。 |
eastus |
获取分配资源状态
使用以下 GET 请求获取分配部署资源作业的状态。 将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/assign/jobs/{JOB-ID}?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{JOB-ID} |
用于获取分配部署状态的作业 ID。 可以在 API 响应分配部署资源请求时收到的 operation-location 标头值中找到此 ID。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 版本。 |
2022-10-01-preview |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到 status 参数更改为 succeeded。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
取消分配部署资源
若要取消分配或删除项目中的部署资源,还可以删除该资源区域的所有部署。
如果不再需要项目,可以从 Azure AI Foundry 将其删除。
- 导航到 Azure AI Foundry 主页。 除非已完成此步骤且会话处于活动状态,否则请通过登录来启动身份验证过程。
- 选择要从 Azure AI Foundry 的“持续构建”中删除的项目
- 选择“管理中心”。
- 选择“ 删除项目”。
删除中心及其所有项目:
导航到“中心”部分的“概述”选项卡。
在右侧,选择 “删除中心”。
该链接将打开 Azure 门户,以便删除中心。
取消分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求,以从项目中取消分配或删除部署资源。
请求 URL
创建 API 请求时,请使用以下 URL。 将以下占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/:unassign?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 版本。 |
2022-10-01-preview |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
Body
使用以下示例 JSON 作为正文。
{
"assignedResourceIds": [
"{AZURE-RESOURCE-ID}"
]
}
| 密钥 |
占位符 |
值 |
示例 |
assignedResourceIds |
{AZURE-RESOURCE-ID} |
要取消分配的完整资源 ID 路径。 可以在 Azure 门户中资源的“属性”选项卡下找到,它作为“资源 ID”字段显示。 |
/subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource |
获取取消分配资源状态
使用以下 GET 请求获取取消分配部署资源作业的状态。 将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/unassign/jobs/{JOB-ID}?api-version={API-VERSION}
| 占位符 |
值 |
示例 |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{JOB-ID} |
用于获取分配部署状态的作业 ID。 可以在 API 响应取消分配部署资源请求时收到的 operation-location 标头值中找到此 ID。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 版本。 |
2022-10-01-preview |
使用以下标头对请求进行身份验证。
| 密钥 |
值 |
Ocp-Apim-Subscription-Key |
资源的密钥。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
Next steps
部署完成后,可以使用它从文本中提取实体。