你当前正在访问 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-IDoperation-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-IDoperation-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-IDoperation-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-IDoperation-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-IDoperation-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-IDoperation-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