你当前正在访问 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=2023-04-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

要使用的项目的名称。

请求正文

名称 类型 说明
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

错误响应。

安全性

AADToken

这些是 Azure Active Directory OAuth2 流。 与 Azure 基于角色的访问控制配对时,它可用于控制对Azure Maps REST API 的访问。 Azure 基于角色的访问控制用于指定对一个或多个Azure Maps资源帐户或子资源的访问权限。 可以通过内置角色或由一个或多个权限组成的自定义角色授予任何用户、组或服务主体的访问权限,以Azure Maps REST API。

若要实现方案,建议查看 身份验证概念。 总之,此安全定义提供了一种解决方案,用于通过能够对特定 API 和作用域进行访问控制的对象对应用程序 () 建模。

备注

  • 此安全定义需要使用x-ms-client-id 标头来指示应用程序请求访问的Azure Maps资源。 这可以从 地图管理 API 获取。

Authorization URL特定于 Azure 公有云实例。 主权云具有唯一的授权 URL 和 Azure Active Directory 配置。 * Azure 基于角色的访问控制是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 从 Azure 管理平面配置的。 * 使用 Azure Maps Web SDK 允许针对多个用例对应用程序进行基于配置的设置。

  • 目前,Azure Active Directory v1.0 或 v2.0 支持工作、学校和来宾,但不支持个人帐户。

类型: oauth2
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/authorize

作用域

名称 说明
https://cognitiveservices.azure.com/.default https://cognitiveservices.azure.com/.default

Ocp-Apim-Subscription-Key

语言服务资源的订阅密钥。

类型: apiKey
在: header

示例

Successful query

示例请求

POST {Endpoint}/language/:query-knowledgebases?projectName=proj1&deploymentName=production&api-version=2023-04-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
}

示例响应

{
  "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

Conflict

string

Forbidden

string

InternalServerError

string

InvalidArgument

string

InvalidRequest

string

NotFound

string

OperationNotFound

string

ProjectNotFound

string

QuotaExceeded

string

ServiceUnavailable

string

Timeout

string

TooManyRequests

string

Unauthorized

string

Warning

string

ErrorResponse

错误响应。

名称 类型 说明
error

Error

错误对象。

InnerErrorCode

用户可读的错误代码。

名称 类型 说明
AzureCognitiveSearchNotFound

string

AzureCognitiveSearchThrottling

string

EmptyRequest

string

ExtractionFailure

string

InvalidCountryHint

string

InvalidDocument

string

InvalidDocumentBatch

string

InvalidParameterValue

string

InvalidRequest

string

InvalidRequestBodyFormat

string

KnowledgeBaseNotFound

string

MissingInputDocuments

string

ModelVersionIncorrect

string

UnsupportedLanguageCode

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 跨度预测要考虑的顶级答案的数目。