你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Question Answering - Get Answers

使用知识库回答指定问题。

POST {Endpoint}/language/:query-knowledgebases?projectName={projectName}&deploymentName={deploymentName}&api-version=2021-10-01

URI 参数

名称 必需 类型 说明
Endpoint
path True

string

支持的认知服务终结点 (例如 https://.api.cognitiveservices.azure.com).

api-version
query True

string

客户端 API 版本。

deploymentName
query True

string

要使用的项目的特定部署的名称。

projectName
query True

string

要使用的项目的名称。

请求头

名称 必需 类型 说明
Ocp-Apim-Subscription-Key True

string

请求正文

名称 类型 说明
answerSpanRequest

ShortAnswerOptions

配置应答范围预测功能。

confidenceScoreThreshold

number

答案的最低阈值分数,值范围为 0 到 1。

context

KnowledgeBaseAnswerContext

包含先前 QnA 信息的上下文对象。

filters

QueryFilters

根据给定的元数据列表和知识库源筛选 QnA。

includeUnstructuredSources

boolean

(可选) 标志,用于启用对非结构化源的查询。

qnaId

integer

要从知识库提取的确切 QnA ID,此字段优先于问题。

question

string

针对知识库查询的用户问题。

rankerType

RankerKind

要使用的排名器类型。

top

integer

要为问题返回的最大答案数。

userId

string

用户的唯一标识符。

响应

名称 类型 说明
200 OK

AnswersResult

从知识库获取答案的成功响应。

Other Status Codes

ErrorResponse

错误响应。

安全性

Ocp-Apim-Subscription-Key

Type: apiKey
In: header

示例

Successful query

Sample Request

POST {Endpoint}/language/:query-knowledgebases?projectName=proj1&deploymentName=production&api-version=2021-10-01


{
  "question": "how long it takes to charge surface?",
  "top": 3,
  "userId": "sd53lsY=",
  "confidenceScoreThreshold": 0.2,
  "context": {
    "previousQnaId": 9,
    "previousUserQuery": "Where are QnA Maker quickstarts?"
  },
  "rankerType": "Default",
  "filters": {
    "metadataFilter": {
      "metadata": [
        {
          "key": "category",
          "value": "api"
        },
        {
          "key": "editorial",
          "value": "chitchat"
        }
      ],
      "logicalOperation": "AND"
    },
    "sourceFilter": [
      "filename1.pdf",
      "https://www.wikipedia.org/microsoft"
    ],
    "logicalOperation": "AND"
  },
  "answerSpanRequest": {
    "enable": true,
    "confidenceScoreThreshold": 0.2,
    "topAnswersWithSpan": 1
  },
  "includeUnstructuredSources": true
}

Sample Response

{
  "answers": [
    {
      "questions": [
        "Power and charging"
      ],
      "answer": "Power and charging**\n\nIt takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.\n\nYou can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.",
      "confidenceScore": 0.65,
      "id": 20,
      "source": "surface-pro-4-user-guide-EN.pdf",
      "metadata": {
        "category": "api",
        "editorial": "chitchat"
      },
      "dialog": {
        "isContextOnly": false,
        "prompts": [
          {
            "displayOrder": 1,
            "qnaId": 23,
            "displayText": "prompt1"
          },
          {
            "displayOrder": 2,
            "qnaId": 36,
            "displayText": "prompt2"
          }
        ]
      },
      "answerSpan": {
        "text": "two to four hours",
        "confidenceScore": 0.3,
        "offset": 33,
        "length": 50
      }
    },
    {
      "questions": [
        "Charge your Surface Pro 4"
      ],
      "answer": "**Charge your Surface Pro 4**\n\n1.  Connect the two parts of the power cord.\n\n2.  Connect the power cord securely to the charging port.\n\n3.  Plug the power supply into an electrical outlet.",
      "confidenceScore": 0.32,
      "id": 13,
      "source": "surface-pro-4-user-guide-EN.pdf"
    }
  ]
}

定义

名称 说明
AnswersOptions

用于查询知识库的参数。

AnswerSpan

QnA 的应答范围对象。

AnswersResult

表示问题解答列表。

enable

启用或禁用应答范围预测。

Error

错误对象。

ErrorCode

用户可读的错误代码。

ErrorResponse

错误响应。

InnerErrorCode

用户可读的错误代码。

InnerErrorModel

包含有关错误的更具体信息的对象。 根据 Microsoft One API 指南 - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses

KnowledgeBaseAnswer

表示知识库答案。

KnowledgeBaseAnswerContext

包含先前 QnA 信息的上下文对象。

KnowledgeBaseAnswerDialog

与应答关联的对话框。

KnowledgeBaseAnswerPrompt

提示输入答案。

LogicalOperationKind

设置为“OR”或“AND”以使用相应的逻辑运算。

MetadataFilter

查找与给定元数据列表关联的 QnA。

MetadataRecord

对象,用于为每个元数据提供键值对。

QueryFilters

筛选知识库。

RankerKind

要使用的排名器类型。

ShortAnswerOptions

配置应答范围预测功能。

AnswersOptions

用于查询知识库的参数。

名称 类型 说明
answerSpanRequest

ShortAnswerOptions

配置应答范围预测功能。

confidenceScoreThreshold

number

答案的最低阈值分数,值范围为 0 到 1。

context

KnowledgeBaseAnswerContext

包含先前 QnA 信息的上下文对象。

filters

QueryFilters

根据给定的元数据列表和知识库源筛选 QnA。

includeUnstructuredSources

boolean

(可选) 标志,用于启用对非结构化源的查询。

qnaId

integer

要从知识库提取的确切 QnA ID,此字段优先于问题。

question

string

针对知识库查询的用户问题。

rankerType

RankerKind

要使用的排名器类型。

top

integer

要为问题返回的最大答案数。

userId

string

用户的唯一标识符。

AnswerSpan

QnA 的应答范围对象。

名称 类型 说明
confidenceScore

number

答案范围的预测分数,值范围为 0 到 1。

length

integer

答案范围的长度。

offset

integer

答案范围与答案开头的偏移量。

text

string

答案范围的预测文本。

AnswersResult

表示问题解答列表。

名称 类型 说明
answers

KnowledgeBaseAnswer[]

表示答案结果列表。

enable

启用或禁用应答范围预测。

名称 类型 说明
True

Boolean

Error

错误对象。

名称 类型 说明
code

ErrorCode

服务器定义的一组错误代码中的一个。

details

Error[]

有关导致此项报告错误的特定错误的详细信息数组。

innererror

InnerErrorModel

一个 对象,该对象包含比当前对象更具体的错误信息。

message

string

错误的用户可读表示形式。

target

string

错误的目标。

ErrorCode

用户可读的错误代码。

名称 类型 说明
AzureCognitiveSearchIndexLimitReached

string

AzureCognitiveSearchIndexNotFound

string

AzureCognitiveSearchNotFound

string

AzureCognitiveSearchThrottling

string

Forbidden

string

InternalServerError

string

InvalidArgument

string

InvalidRequest

string

NotFound

string

OperationNotFound

string

ProjectNotFound

string

ServiceUnavailable

string

TooManyRequests

string

Unauthorized

string

ErrorResponse

错误响应。

名称 类型 说明
error

Error

错误对象。

InnerErrorCode

用户可读的错误代码。

名称 类型 说明
AzureCognitiveSearchNotFound

string

AzureCognitiveSearchThrottling

string

ExtractionFailure

string

InvalidParameterValue

string

InvalidRequest

string

KnowledgeBaseNotFound

string

InnerErrorModel

包含有关错误的更具体信息的对象。 根据 Microsoft One API 指南 - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses

名称 类型 说明
code

InnerErrorCode

服务器定义的一组错误代码中的一个。

details

object

错误详细信息。

innererror

InnerErrorModel

一个 对象,该对象包含比当前对象更具体的错误信息。

message

string

错误消息。

target

string

错误目标。

KnowledgeBaseAnswer

表示知识库答案。

名称 类型 说明
answer

string

回答文本。

answerSpan

AnswerSpan

针对用户的问题回答 QnA 的跨度对象。

confidenceScore

number

答案置信度分数,值范围为 0 到 1。

dialog

KnowledgeBaseAnswerDialog

与应答关联的对话框。

id

integer

QnA 结果的 ID。

metadata

object

与答案关联的元数据,可用于对问题答案进行分类或筛选。

questions

string[]

与答案关联的问题列表。

source

string

QnA 结果的源。

KnowledgeBaseAnswerContext

包含先前 QnA 信息的上下文对象。

名称 类型 说明
previousQnaId

integer

上一轮靠前的答案结果 QnA ID。

previousUserQuery

string

以前的用户查询。

KnowledgeBaseAnswerDialog

与应答关联的对话框。

名称 类型 说明
isContextOnly

boolean

标记提示是否仅与上一个问题相关。 如果为 true,则不包含此 QnA 作为无上下文查询的搜索结果;否则,如果为 false,则忽略上下文并在搜索结果中包含此 QnA。

prompts

KnowledgeBaseAnswerPrompt[]

与答案关联的提示列表。

KnowledgeBaseAnswerPrompt

提示输入答案。

名称 类型 说明
displayOrder

integer

提示的索引 - 用于对提示进行排序。

displayText

string

显示的文本表示跟进问题提示。

qnaId

integer

对应于提示的 QnA ID。

LogicalOperationKind

设置为“OR”或“AND”以使用相应的逻辑运算。

名称 类型 说明
AND

string

OR

string

MetadataFilter

查找与给定元数据列表关联的 QnA。

名称 类型 默认值 说明
logicalOperation

LogicalOperationKind

AND

用于联接元数据筛选器的操作。

metadata

MetadataRecord[]

对象,用于为每个元数据提供键值对。

MetadataRecord

对象,用于为每个元数据提供键值对。

名称 类型 说明
key

string

QnA 中使用的元数据字典中的元数据键。

value

string

QnA 中使用的元数据字典中的元数据值。

QueryFilters

筛选知识库。

名称 类型 默认值 说明
logicalOperation

LogicalOperationKind

AND

用于将元数据筛选器与源筛选器联接的逻辑操作。

metadataFilter

MetadataFilter

查找与给定元数据列表关联的 QnA。

sourceFilter

string[]

查找与知识库中的任何给定源列表关联的 QnA。

RankerKind

要使用的排名器类型。

名称 类型 说明
Default

string

默认排名器。

QuestionOnly

string

仅提问排名器。

ShortAnswerOptions

配置应答范围预测功能。

名称 类型 说明
confidenceScoreThreshold

number

包含答案范围所需的最低阈值分数,值范围为 0 到 1。

enable

enable

启用或禁用应答范围预测。

topAnswersWithSpan

integer

从 1 到 10 跨度预测要考虑的顶级答案的数目。