你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创作 API
自定义问题解答创作 API 用于自动执行常见任务,例如添加新的问答对,以及创建、发布和维护项目。
注意
创作功能通过 REST API 和创作 SDK(预览版)提供。 本文提供了有关通过 cURL 使用 REST API 的示例。 有关所有可用参数和功能的完整文档,请参阅 REST API 参考内容。
先决条件
- 最新版本的 cURL。 本文使用了 cURL 文档中所述的多个命令行开关。
- 本文中的命令用于在 Bash shell 中执行。 在不进行修改的情况下,这些命令将不一定能在 Windows 命令提示符下或在 PowerShell 中运行。 如果你没有在本地安装 Bash shell,可以使用 Azure Cloud Shell 的 Bash 环境。
创建一个项目
要以编程方式创建项目,请:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果前面的示例是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
NEW-PROJECT-NAME |
新的自定义问题解答项目的名称。 |
你还可以调整其他值,如项目语言、当找不到满足或超出置信度阈值的答案时提供的默认答案,以及此语言资源是否支持多种语言。
示例查询
curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
"description": "proj1 is a test project.",
"language": "en",
"settings": {
"defaultAnswer": "No good match found for your question in the project."
},
"multilingualResource": true
}
}' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{NEW-PROJECT-NAME}?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"projectName": "proj1",
"description": "proj1 is a test project.",
"language": "en",
"settings": {
"defaultAnswer": "No good match found for your question in the project."
},
"multilingualResource": true,
"createdDateTime": "2021-05-01T15:13:22Z",
"lastModifiedDateTime": "2021-05-01T15:13:22Z",
"lastDeployedDateTime": "2021-05-01T15:13:22Z"
}
}
}
删除项目
要以编程方式删除项目,请:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果前面的示例是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要删除的项目名称。 |
示例查询
curl -X DELETE -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}?api-version=2021-10-01'
成功调用删除项目会导致返回一个 Operation-Location
标头,该标头可用于查看删除项目作业的状态。 在大多数示例中,我们不需要查看响应头,因此不会显示它们。 为了检索响应头,我们的 cURL 命令会使用 -i
。 如果在终结点地址之前没有此参数,对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deletion-jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 324
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 20:56:18 GMT
如果已删除或找不到该项目,则会收到类似于以下内容的消息:
{
"error": {
"code": "ProjectNotFound",
"message": "The specified project was not found.",
"details": [
{
"code": "ProjectNotFound",
"message": "{GUID}"
}
]
}
}
获取项目删除状态
查看删除项目请求的状态:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其部署状态的项目的名称。 |
JOB-ID |
以编程方式删除项目时,会生成一个 JOB-ID 作为删除请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deletion-jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/deletion-jobs/{JOB-ID}?api-version=2021-10-01'
示例响应
{
"createdDateTime": "2021-11-23T20:56:18+00:00",
"expirationDateTime": "2021-11-24T02:56:18+00:00",
"jobId": "GUID",
"lastUpdatedDateTime": "2021-11-23T20:56:18+00:00",
"status": "succeeded"
}
获取项目设置
要检索有关给定项目的信息,请在下面的查询中更新以下值:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其相关信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"projectName": "proj1",
"description": "proj1 is a test project.",
"language": "en",
"settings": {
"defaultAnswer": "No good match found for your question in the project."
},
"createdDateTime": "2021-05-01T15:13:22Z",
"lastModifiedDateTime": "2021-05-01T15:13:22Z",
"lastDeployedDateTime": "2021-05-01T15:13:22Z"
}
}
}
获取问答对
要检索给定项目的问答对和相关信息,请在下面的查询中更新以下值:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其所有问答对的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"value": [
{
"id": 1,
"answer": "ans1",
"source": "source1",
"questions": [
"question 1.1",
"question 1.2"
],
"metadata": {
"k1": "v1",
"k2": "v2"
},
"dialog": {
"isContextOnly": false,
"prompts": [
{
"displayOrder": 1,
"qnaId": 11,
"displayText": "prompt 1.1"
},
{
"displayOrder": 2,
"qnaId": 21,
"displayText": "prompt 1.2"
}
]
},
"lastUpdatedDateTime": "2021-05-01T17:21:14Z"
},
{
"id": 2,
"answer": "ans2",
"source": "source2",
"questions": [
"question 2.1",
"question 2.2"
],
"lastUpdatedDateTime": "2021-05-01T17:21:14Z"
}
]
}
}
}
获取源
要检索给定项目的源和相关信息,请在下面的查询中更新以下值:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其所有相关源信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT_NAME}/sources?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"value": [
{
"displayName": "source1",
"sourceUri": "https://learn.microsoft.com/azure/ai-services/qnamaker/overview/overview",
"sourceKind": "url",
"lastUpdatedDateTime": "2021-05-01T15:13:22Z"
},
{
"displayName": "source2",
"sourceUri": "https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf",
"sourceKind": "file",
"contentStructureKind": "unstructured",
"lastUpdatedDateTime": "2021-05-01T15:13:22Z"
}
]
}
}
}
获取同义词
要检索给定项目的同义词和相关信息,请在下面的查询中更新以下值:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其同义词信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/synonyms?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"value": [
{
"alterations": [
"qnamaker",
"qna maker"
]
},
{
"alterations": [
"botframework",
"bot framework"
]
}
]
}
}
}
部署项目
要将项目部署到生产,请在下面的查询中更新以下值:
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要部署到生产的项目的名称。 |
示例查询
curl -X PUT -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments/production?api-version=2021-10-01'
成功调用部署项目会导致返回一个 Operation-Location
标头,该标头可用于查看部署作业的状态。 在大多数示例中,我们不需要查看响应头,因此不会显示它们。 为了检索响应头,我们的 cURL 命令会使用 -i
。 如果在终结点地址之前没有此参数,对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
0HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deployments/production/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 31
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 20:35:00 GMT
获取项目部署状态
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其部署状态的项目的名称。 |
JOB-ID |
以编程方式部署项目时,会生成一个 JOB-ID 作为部署请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/deployments/production/jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments/production/jobs/{JOB-ID}?api-version=2021-10-01'
示例响应
{
"200": {
"headers": {},
"body": {
"errors": [],
"createdDateTime": "2021-05-01T17:21:14Z",
"expirationDateTime": "2021-05-01T17:21:14Z",
"jobId": "{JOB-ID-GUID}",
"lastUpdatedDateTime": "2021-05-01T17:21:14Z",
"status": "succeeded"
}
}
}
导出项目元数据和资产
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要导出的项目名称。 |
示例查询
curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{exportAssetTypes": ["qnas","synonyms"]}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/:export?api-version=2021-10-01&format=tsv'
示例响应
HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/export/jobs/{JOB-ID_GUID}
x-envoy-upstream-service-time: 214
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Tue, 23 Nov 2021 21:24:03 GMT
查看导出状态
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其导出状态的项目的名称。 |
JOB-ID |
以编程方式导出项目时,会生成一个 JOB-ID 作为导出请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/export/jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID}?api-version=2021-10-01'
示例响应
{
"createdDateTime": "2021-11-23T21:24:03+00:00",
"expirationDateTime": "2021-11-24T03:24:03+00:00",
"jobId": "JOB-ID-GUID",
"lastUpdatedDateTime": "2021-11-23T21:24:08+00:00",
"status": "succeeded",
"resultUrl": "https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result"
}
如果尝试直接访问 resultUrl,则会收到 404 错误。 必须将 ?api-version=2021-10-01
追加到路径,使其可由经过身份验证的请求访问:https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result?api-version=2021-10-01
导入项目
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
FILE-URI-PATH |
以编程方式导出项目,然后查看导出状态时,会生成 resultUrl 作为响应的一部分。 例如:"resultUrl": "https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result" ,可以将 resultUrl 与追加为源文件的 API 版本一起使用,以从中导入项目:https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result?api-version=2021-10-01 。 |
示例查询
curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
"fileUri": "FILE-URI-PATH"
}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/:import?api-version=2021-10-01&format=tsv'
成功调用项目导入会导致返回一个 Operation-Location
标头,它可用于查看导入作业的状态。 在很多示例中,我们不需要查看响应头,因此不会显示它们。 为了检索响应头,我们的 cURL 命令会使用 -i
。 如果在终结点地址之前没有此额外的参数,对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/sample-proj1/import/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 417
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 00:35:11 GMT
查看导入状态
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
JOB-ID |
以编程方式导入项目时,会生成一个 JOB-ID 作为导出请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/import/jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME/import/jobs/{JOB-ID-GUID}?api-version=2021-10-01'
示例查询响应
{
"errors": [],
"createdDateTime": "2021-05-01T17:21:14Z",
"expirationDateTime": "2021-05-01T17:21:14Z",
"jobId": "JOB-ID-GUID",
"lastUpdatedDateTime": "2021-05-01T17:21:14Z",
"status": "succeeded"
}
列出部署
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要生成其部署列表的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments?api-version=2021-10-01'
示例响应
[
{
"deploymentName": "production",
"lastDeployedDateTime": "2021-10-26T15:12:02Z"
}
]
列出项目
检索帐户有权访问的所有问题解答项目的列表。
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects?api-version=2021-10-01'
示例响应
{
"value": [
{
"projectName": "Sample-project",
"description": "My first question answering project",
"language": "en",
"multilingualResource": false,
"createdDateTime": "2021-10-07T04:51:15Z",
"lastModifiedDateTime": "2021-10-27T00:42:01Z",
"lastDeployedDateTime": "2021-11-24T01:34:18Z",
"settings": {
"defaultAnswer": "No good match found in KB"
}
}
]
}
更新源
在本示例中,我们将向现有项目添加一个新源。 你还可以通过此命令替换和删除现有源,具体取决于作为查询正文的一部分传递的操作类型。
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要更新源的项目的名称。 |
METHOD |
修补程序 |
示例查询
curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '[
{
"op": "add",
"value": {
"displayName": "source5",
"sourceKind": "url",
"sourceUri": "https://download.microsoft.com/download/7/B/1/7B10C82E-F520-4080-8516-5CF0D803EEE0/surface-book-user-guide-EN.pdf",
"sourceContentStructureKind": "semistructured"
}
}
]' -i '{LanguageServiceName}.cognitiveservices.azure.com//language/query-knowledgebases/projects/{projectName}/sources?api-version=2021-10-01'
成功调用更新源会导致返回一个 Operation-Location
标头,该标头可用于查看导入作业的状态。 在很多示例中,我们不需要查看响应头,因此并不总是显示它们。 为了检索响应头,我们的 cURL 命令会使用 -i
。 如果在终结点地址之前没有此参数,对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/sources/jobs/{JOB_ID_GUID}
x-envoy-upstream-service-time: 412
apim-request-id: dda23d2b-f110-4645-8bce-1a6f8d504b33
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 02:47:53 GMT
获取更新源状态
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
JOB-ID |
以编程方式更新源时,会生成一个 JOB-ID 作为更新源请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/sources/jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/sources/jobs/{JOB-ID}?api-version=2021-10-01'
示例响应
{
"createdDateTime": "2021-11-24T02:47:53+00:00",
"expirationDateTime": "2021-11-24T08:47:53+00:00",
"jobId": "{JOB-ID-GUID}",
"lastUpdatedDateTime": "2021-11-24T02:47:56+00:00",
"status": "succeeded",
"resultUrl": "/knowledgebases/Sample-project"
}
更新问答对
在本示例中,我们将向现有源添加问答对。 还可以修改或删除此查询的现有问答对,具体取决于在查询正文中传递的操作。 如果没有名为 source5
的源,本示例查询将失败。 可以将查询正文中的源值调整为目标项目存在的源。
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
curl -X PATCH -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '[
{
"op": "add",
"value":{
"id": 1,
"answer": "The latest question answering docs are on https://learn.microsoft.com",
"source": "source5",
"questions": [
"Where do I find docs for question answering?"
],
"metadata": {},
"dialog": {
"isContextOnly": false,
"prompts": []
}
}
}
]' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas?api-version=2021-10-01'
成功调用更新问答对会导致返回一个 Operation-Location
标头,该标头可用于查看更新作业的状态。 在很多示例中,我们不需要查看响应头,因此并不总是显示它们。 为了检索响应头,我们的 cURL 命令会使用 -i
。 如果在终结点地址之前没有此参数,对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://southcentralus.api.cognitive.microsoft.com:443/language/query-knowledgebases/projects/Sample-project/qnas/jobs/{JOB-ID-GUID}
x-envoy-upstream-service-time: 507
apim-request-id:
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 03:16:01 GMT
获取更新问答对状态
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为问答对更新目标的项目的名称。 |
JOB-ID |
以编程方式更新问答对时,会生成一个 JOB-ID 作为更新请求的 operation-location 响应头的一部分。 JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/sample-proj1/qnas/jobs/{THIS GUID IS YOUR JOB ID} |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://southcentralus.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/qnas/jobs/{JOB-ID}?api-version=2021-10-01'
示例响应
"createdDateTime": "2021-11-24T03:16:01+00:00",
"expirationDateTime": "2021-11-24T09:16:01+00:00",
"jobId": "{JOB-ID-GUID}",
"lastUpdatedDateTime": "2021-11-24T03:16:06+00:00",
"status": "succeeded",
"resultUrl": "/knowledgebases/Sample-project"
更新同义词
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要添加同义词的项目的名称。 |
示例查询
curl -X PUT -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
"value": [
{
"alterations": [
"qnamaker",
"qna maker"
]
},
{
"alterations": [
"botframework",
"bot framework"
]
}
]
}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/synonyms?api-version=2021-10-01'
示例响应
0HTTP/2 200
content-length: 17
content-type: application/json; charset=utf-8
x-envoy-upstream-service-time: 39
apim-request-id: 5deb2692-dac8-43a8-82fe-36476e407ef6
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 03:59:09 GMT
{
"value": []
}
更新主动学习反馈
变量名称 | 值 |
---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 示例终结点为:https://southcentralus.api.cognitive.microsoft.com/ 。 如果这是以下代码示例中的终结点,则只需要添加 southcentral 的区域特定部分,因为终结点路径的其余部分已经存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 也可以在“Language Studio”>“问题解答”>“部署项目”>“获取预测 URL”中查找该值。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为主动学习反馈更新目标的项目的名称。 |
示例查询
curl -X POST -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '{
records": [
{
"userId": "user1",
"userQuestion": "hi",
"qnaId": 1
},
{
"userId": "user1",
"userQuestion": "hello",
"qnaId": 2
}
]
}' -i 'https://{ENDPOINT}.api.cognitive.microsoft.com/language/query-knowledgebases/projects/{PROJECT-NAME}/feedback?api-version=2021-10-01'
示例响应
HTTP/2 204
x-envoy-upstream-service-time: 37
apim-request-id: 92225e03-e83f-4c7f-b35a-223b1b0f29dd
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
date: Wed, 24 Nov 2021 04:02:56 GMT