Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
自定义问答创作 API 用于自动执行常见任务,例如添加新的问题答案对,以及创建、发布和维护项目。
注意
创作功能通过 REST API 和创作 SDK(预览版)提供。 本文提供了有关通过 cURL 使用 REST API 的示例。 有关所有可用参数和功能的完整文档,请参阅 REST API 参考内容。
先决条件
- 最新版本的 cURL。 本文使用了 cURL 文档中所述的多个命令行开关。
- 本文中的命令在 Bash shell 中执行。 这些命令并不总是在 Windows 命令提示符或 PowerShell 中工作,而无需修改。
创建一个项目
要以编程方式创建项目,请:
| 变量名称 | 值 |
|---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 示例终结点为:https://chinaeast2.api.cognitive.azure.cn/。 如果前面的示例是以下代码示例中的终结点,则只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 示例终结点为:https://chinaeast2.api.cognitive.azure.cn/。 如果前面的示例是以下代码示例中的终结点,则只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要删除的项目名称。 |
示例查询
curl -X DELETE -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -i 'https://{ENDPOINT}.api.cognitive.azure.cn/language/query-knowledgebases/projects/{PROJECT-NAME}?api-version=2021-10-01'
成功调用删除项目会导致 Operation-Location 返回标头,该标头可用于检查已删除项目作业的状态。 在我们的大多数示例中,我们不会查看响应标头。 为了检索响应头,我们的 cURL 命令会使用 -i。 如果没有在终结点地址前面的此参数,则对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其部署状态的项目的名称。 |
JOB-ID |
以编程方式删除项目时,会生成一个 JOB-ID 作为删除请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn: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.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其相关信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其所有问答对的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其所有相关源信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要检索其同义词信息的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" 'https://{ENDPOINT}.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要部署到生产的项目的名称。 |
示例查询
curl -X PUT -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' -i 'https://{ENDPOINT}.api.cognitive.azure.cn/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://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其部署状态的项目的名称。 |
JOB-ID |
以编程方式部署项目时,会生成一个 JOB-ID 作为部署请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn: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.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.azure.cn/language/query-knowledgebases/projects/{PROJECT-NAME}/:export?api-version=2021-10-01&format=tsv'
示例响应
HTTP/2 202
content-length: 0
operation-location: https://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要查看其导出状态的项目的名称。 |
JOB-ID |
以编程方式导出项目时,会生成一个 JOB-ID 作为导出请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn/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.azure.cn/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://chinaeast2.api.cognitive.azure.cn:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result"
}
如果尝试直接访问 resultUrl,则会出现 404 错误。 必须将 ?api-version=2021-10-01 追加到路径,使其可由经过身份验证的请求访问:https://chinaeast2.api.cognitive.azure.cn:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result?api-version=2021-10-01
导入项目
| 变量名称 | 值 |
|---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
FILE-URI-PATH |
以编程方式导出项目,然后查看导出状态时,会生成 resultUrl 作为响应的一部分。 例如:"resultUrl": "https://chinaeast2.api.cognitive.azure.cn:443/language/query-knowledgebases/projects/sample-proj1/export/jobs/{JOB-ID_GUID}/result",可以将 resultUrl 与追加为源文件的 API 版本一起使用,以从中导入项目:https://chinaeast2.api.cognitive.azure.cn: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.azure.cn/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://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
JOB-ID |
以编程方式导入项目时,会生成一个 JOB-ID 作为导出请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn/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://chinaeast2.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要生成其部署列表的项目的名称。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.azure.cn/language/query-knowledgebases/projects/{PROJECT-NAME}/deployments?api-version=2021-10-01'
示例响应
[
{
"deploymentName": "production",
"lastDeployedDateTime": "2021-10-26T15:12:02Z"
}
]
列出项目
检索帐户有权访问的所有问题解答项目的列表。
| 变量名称 | 值 |
|---|---|
ENDPOINT |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
示例查询
curl -X GET -H "Ocp-Apim-Subscription-Key: {API-KEY}" -H "Content-Type: application/json" -d '' 'https://{ENDPOINT}.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.cn//language/query-knowledgebases/projects/{projectName}/sources?api-version=2021-10-01'
成功调用更新源会导致返回一个 Operation-Location 标头,该标头可用于查看导入作业的状态。 在我们的许多示例中,我们不会查看响应标头。 为了检索响应头,我们的 cURL 命令会使用 -i。 如果没有在终结点地址前面的此参数,则对此命令的响应将显示为空,就好像没有发生响应一样。
示例响应
HTTP/2 202
content-length: 0
operation-location: https://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为导入目标的项目的名称。 |
JOB-ID |
以编程方式更新源时,会生成一个 JOB-ID 作为更新源请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn/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.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.azure.cn/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://chinaeast2.api.cognitive.azure.cn: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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
PROJECT-NAME |
要作为问答对更新目标的项目的名称。 |
JOB-ID |
以编程方式更新问答对时,会生成一个 JOB-ID 作为更新请求的 operation-location 响应头的一部分。
JOB-ID 是 operation-location 末尾的 GUID。 例如: operation-location: https://chinaeast2.api.cognitive.azure.cn/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://chinaeast2.api.cognitive.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.azure.cn/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 门户检查资源时,可在“密钥和终结点”部分中找到此值。 一个示例终结点是: https://chinaeast2.api.cognitive.azure.cn/ 只需添加区域特定的部分 chinaeast2。 终结点路径的其余部分已存在。 |
API-KEY |
从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 可以使用 Key1 或 Key2。 应始终具有两个有效密钥,以实现安全密钥轮换而无需停机。 此密钥值是示例请求的一部分。 |
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.azure.cn/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