对模型执行方式感到满意后,即可部署模型;并使用它对文本进行分类。 部署模型,使其可通过预测 API 使用。
Prerequisites
请参阅 项目开发生命周期。
部署模型
查看模型的性能并决定可以在环境中使用它后,需要将其分配给部署才能对其进行查询。 将模型分配给部署会使其可通过预测 API 使用。 建议创建一个名为 production 的部署,将您目前为止构建的最佳模型分配给它,并在您的系统中使用该模型。 你可以创建另一个名为 staging 的部署,可将当前正在使用的模型分配给该部署,以便能够对其进行测试。 项目中最多可以有 10 个部署。
若要在 Language Studio 中部署模型,请执行以下操作:
在左侧菜单中,选择“部署模型”。
选择“添加部署”,以开始新的部署作业。
选择“创建新部署”以创建新的部署,并从下面的下拉列表中分配一个已训练的模型。 还可以通过选择“覆盖有部署”选项来覆盖现有部署,然后从下面的下拉列表中选择要为其分配的已训练的模型。
注意
覆盖现有部署不需要更改预测 API 调用,但产生的结果将基于新分配的模型。
选择“部署”以启动部署作业。
部署成功后,旁边将显示到期日期。
部署到期是指已部署的模型将无法用于预测,这通常发生在训练配置到期后的 12 个月内。
提交部署作业
使用以下 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"
}
交换部署
在测试分配给一个部署的模型后并想要将其分配给另一个部署,就可以交换部署。 交换部署涉及获取分配给第一个部署的模型,并将其分配给第二个部署。 然后获取分配给第二个部署的模型并将其分配给第一个部署。 可以使用此步骤在您想要将分配给production的模型重新分配给staging时,交换staging和production的部署。
从 Language Studio 中交换部署
在“部署模型”页面中,选择要交换的两个部署,然后选择顶部菜单中的“交换部署”。
从出现的窗口中,选择要交换的部署的名称。
使用以下 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 响应。
删除部署
使用以下 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 标头的成功调用结果。
分配部署资源
可以通过分配存在于不同区域中的不同语言资源来将项目部署到多个区域。
若要在 Language Studio 中分配位于其他区域的部署资源,请执行以下操作:
- 确保你将自己分配为用于创建项目的资源的认知服务语言所有者。
- 转到 Language Studio 中的“部署模型”页。
- 选择“区域”选项卡。
- 选择“添加部署资源”。
- 选择另一个区域中的语言资源。
现在,您已准备好将项目部署到您为资源指定的区域。
以编程方式分配部署资源需要进行 Microsoft Entra 身份验证。 Microsoft Entra ID 用于确认你有权访问想要分配给项目进行多区域部署的资源。 若要在进行 REST API 调用时以编程方式使用 Microsoft Entra 身份验证,请从 Foundry Tools 文档了解详细信息。
分配资源
使用以下 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 标头值中找到它。 |
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"
}
取消分配部署资源
取消分配或删除项目中的部署资源时,还会删除以前部署到该资源区域的所有部署。
若要使用 Language Studio 取消分配或删除其他区域中的部署资源,请执行以下操作:
- 转到“部署模型”页中的“区域”选项卡。
- 选择要取消分配的资源。
- 选择“删除分配”按钮。
- 在出现的窗口中,键入要删除的资源的名称。
取消分配资源
使用以下 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。 它位于 operation-location 标头值中,这是您在取消分配部署资源请求时从 API 收到的响应。 |
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