对模型执行方式感到满意后,即可部署模型,并查询来自言语的预测。 部署模型,使其可通过预测 API 使用。
先决条件
有关详细信息, 请参阅项目开发生命周期。
部署模型
查看完模型的性能并确定它适合在您的环境中使用后,需要将其指派到一个部署中,以便能够对其进行查询。 将模型分配给部署会使其可通过预测 API 使用。 我们建议您创建一个名为production的部署,将您迄今为止构建的最佳模型分配给该部署,并在您的系统中使用它。 你可以创建另一个名为 staging 的部署,可将当前正在使用的模型分配给该部署,以便能够对其进行测试。 项目中最多可以有 10 个部署。
提交部署作业
使用以下 URL、标头和 JSON 正文创建 PUT 请求,开始部署业务流程工作流模型。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{DEPLOYMENT-NAME} |
部署名称。 此值区分大小写。 | staging |
{API-VERSION} |
要调用的 API 的版本。 | 2023-04-01 |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
请求主体
{
"trainedModelLabel": "{MODEL-NAME}",
}
| Key | Placeholder | 价值 | Example |
|---|---|---|---|
| trainedModelLabel | {MODEL-NAME} |
分配给您部署的模型名称。 只能分配已成功训练的模型。 此值区分大小写。 | myModel |
发送 API 请求后,会收到指示 202 成功的响应。 在响应标头中,提取 operation-location 格式如下的值:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
可使用此 URL 获取部署作业状态。
获取部署作业状态
使用以下 GET 请求来获取部署作业的状态。 将占位符中的值替换为您自己的值。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{DEPLOYMENT-NAME} |
部署名称。 此值区分大小写。 | staging |
{JOB-ID} |
用于查找模型训练状态的 ID。 它位于 location 头信息中,这是您从 API 收到的响应,针对您的模型部署请求而提供。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 的版本。 | 2023-04-01 |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,会收到以下响应。 继续轮询该端点,直到状态参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
交换部署
完成对分配给一个部署的模型的测试后,您可能需要将该模型分配到另一个部署中。 交换部署涉及以下操作:
- 获取分配给第一个部署的模型并将其分配给第二个部署。
- 获取分配给第二个部署的模型并将其分配给第一个部署。
当您希望将分配给production的模型分配给staging时,可以使用此步骤来交换staging和production的部署。
使用以下 URL、标头和 JSON 正文创建 POST 请求,以启动交换部署作业。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/:swap?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 的版本。 | 2023-04-01 |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
请求主体
{
"firstDeploymentName": "{FIRST-DEPLOYMENT-NAME}",
"secondDeploymentName": "{SECOND-DEPLOYMENT-NAME}"
}
| Key | Placeholder | 价值 | Example |
|---|---|---|---|
| firstDeploymentName | {FIRST-DEPLOYMENT-NAME} |
第一个部署的名称。 此值区分大小写。 | production |
| secondDeploymentName | {SECOND-DEPLOYMENT-NAME} |
第二个部署的名称。 此值区分大小写。 | staging |
发送 API 请求后,会收到指示 202 成功的响应。
删除部署
使用以下 URL、标头和 JSON 正文创建 DELETE 请求,删除对话语言理解部署。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{DEPLOYMENT-NAME} |
部署名称。 此值区分大小写。 | staging |
{API-VERSION} |
要调用的 API 的版本。 | 2023-04-01 |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
发送 API 请求后,会收到指示 202 成功的响应,这意味着部署已删除。
分配部署资源
可以通过分配存在于不同区域中的不同语言资源来将项目部署到多个区域。
以编程方式分配部署资源需要进行 Microsoft Entra 身份验证**。 Microsoft Entra ID 用于确认你有权访问想要分配给项目进行多区域部署的资源。 若要在发出 REST API 调用时以编程方式使用 Azure Microsoft Entra 身份验证,请参阅Azure AI 服务身份验证文档。
分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求以分配部署资源。
请求的 URL
创建 API 请求时,请使用以下 URL。 将占位符中的值替换为您自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/:assign?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 的版本。 | 2022-10-01-preview |
Headers
使用 Microsoft Entra 身份验证对此 API 进行身份验证。
Body
使用以下示例 JSON 作为正文。
{
"resourcesMetadata": [
{
"azureResourceId": "{AZURE-RESOURCE-ID}",
"customDomain": "{CUSTOM-DOMAIN}",
"region": "{REGION-CODE}"
}
]
}
| Key | Placeholder | 价值 | Example |
|---|---|---|---|
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.cn/ |
contosoresource |
region |
{REGION-CODE} |
一个区域代码,用于指定你要分配的资源的区域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下找到,它显示为“位置/区域”字段的一部分。 | chinanorth2 |
获取分配资源状态
使用以下 GET 请求获取分配部署资源作业的状态。 将占位符中的值替换为您自己的值。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/assign/jobs/{JOB-ID}?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{JOB-ID} |
用于获取分配部署状态的作业 ID。 它位于您从 API 收到的标头值中,这是对您分配部署资源请求的响应。 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 的版本。 | 2022-10-01-preview |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,会收到以下响应。 继续轮询该端点,直到状态参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
取消分配部署资源
取消分配或删除项目中的部署资源时,还可以删除部署到该资源区域的所有部署。
取消分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求,以从项目中取消分配或删除部署资源。
请求的 URL
创建 API 请求时,请使用以下 URL。 将占位符中的值替换为您自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/:unassign?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 的版本。 | 2022-10-01-preview |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
Body
使用以下示例 JSON 作为正文。
{
"assignedResourceIds": [
"{AZURE-RESOURCE-ID}"
]
}
| Key | Placeholder | 价值 | Example |
|---|---|---|---|
assignedResourceIds |
{AZURE-RESOURCE-ID} |
要取消分配的完整资源 ID 路径。 可以在 Azure 门户中资源的“属性”选项卡下找到,它作为“资源 ID”字段显示。 | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource |
获取取消分配资源状态
使用以下 GET 请求获取取消分配部署资源作业的状态。 将占位符中的值替换为您自己的值。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/unassign/jobs/{JOB-ID}?api-version={API-VERSION}
| Placeholder | 价值 | Example |
|---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.cn |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{JOB-ID} |
用于获取分配部署状态的作业 ID。 它位于 operation-location 标头值中,这是您在取消分配部署资源请求时从 API 收到的响应。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 的版本。 | 2022-10-01-preview |
Headers
使用以下标头对请求进行身份验证。
| Key | 价值 |
|---|---|
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,会收到以下响应。 继续轮询该端点,直到状态参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}