你当前正在访问 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 版本。 |
deployment
|
query | True |
string |
要使用的项目的特定部署的名称。 |
project
|
query | True |
string |
要使用的项目的名称。 |
请求正文
名称 | 类型 | 说明 |
---|---|---|
answerSpanRequest |
配置应答范围预测功能。 |
|
confidenceScoreThreshold |
number |
答案的最低阈值分数,值范围为 0 到 1。 |
context |
包含先前 QnA 信息的上下文对象。 |
|
filters |
根据给定的元数据列表和知识库源筛选 QnA。 |
|
includeUnstructuredSources |
boolean |
(可选) 标志,用于启用对非结构化源的查询。 |
qnaId |
integer |
要从知识库提取的确切 QnA ID,此字段优先于问题。 |
question |
string |
针对知识库查询的用户问题。 |
rankerType |
要使用的排名器类型。 |
|
top |
integer |
要为问题返回的最大答案数。 |
userId |
string |
用户的唯一标识符。 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
从知识库获取答案的成功响应。 |
|
Other Status Codes |
错误响应。 |
安全性
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"
}
]
}
定义
名称 | 说明 |
---|---|
Answers |
用于查询知识库的参数。 |
Answer |
QnA 的应答范围对象。 |
Answers |
表示问题解答列表。 |
enable |
启用或禁用应答范围预测。 |
Error |
错误对象。 |
Error |
用户可读的错误代码。 |
Error |
错误响应。 |
Inner |
用户可读的错误代码。 |
Inner |
包含有关错误的更具体信息的对象。 根据 Microsoft One API 指南 - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses。 |
Knowledge |
表示知识库答案。 |
Knowledge |
包含先前 QnA 信息的上下文对象。 |
Knowledge |
与应答关联的对话框。 |
Knowledge |
提示输入答案。 |
Logical |
设置为“OR”或“AND”以使用相应的逻辑运算。 |
Metadata |
查找与给定元数据列表关联的 QnA。 |
Metadata |
对象,用于为每个元数据提供键值对。 |
Query |
筛选知识库。 |
Ranker |
要使用的排名器类型。 |
Short |
配置应答范围预测功能。 |
AnswersOptions
用于查询知识库的参数。
名称 | 类型 | 说明 |
---|---|---|
answerSpanRequest |
配置应答范围预测功能。 |
|
confidenceScoreThreshold |
number |
答案的最低阈值分数,值范围为 0 到 1。 |
context |
包含先前 QnA 信息的上下文对象。 |
|
filters |
根据给定的元数据列表和知识库源筛选 QnA。 |
|
includeUnstructuredSources |
boolean |
(可选) 标志,用于启用对非结构化源的查询。 |
qnaId |
integer |
要从知识库提取的确切 QnA ID,此字段优先于问题。 |
question |
string |
针对知识库查询的用户问题。 |
rankerType |
要使用的排名器类型。 |
|
top |
integer |
要为问题返回的最大答案数。 |
userId |
string |
用户的唯一标识符。 |
AnswerSpan
QnA 的应答范围对象。
名称 | 类型 | 说明 |
---|---|---|
confidenceScore |
number |
答案范围的预测分数,值范围为 0 到 1。 |
length |
integer |
答案范围的长度。 |
offset |
integer |
答案范围与答案开头的偏移量。 |
text |
string |
答案范围的预测文本。 |
AnswersResult
表示问题解答列表。
名称 | 类型 | 说明 |
---|---|---|
answers |
表示答案结果列表。 |
enable
启用或禁用应答范围预测。
名称 | 类型 | 说明 |
---|---|---|
True |
Boolean |
Error
错误对象。
名称 | 类型 | 说明 |
---|---|---|
code |
服务器定义的一组错误代码中的一个。 |
|
details |
Error[] |
有关导致此项报告错误的特定错误的详细信息数组。 |
innererror |
一个 对象,该对象包含比当前对象更具体的错误信息。 |
|
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 |
错误对象。 |
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 |
服务器定义的一组错误代码中的一个。 |
|
details |
object |
错误详细信息。 |
innererror |
一个 对象,该对象包含比当前对象更具体的错误信息。 |
|
message |
string |
错误消息。 |
target |
string |
错误目标。 |
KnowledgeBaseAnswer
表示知识库答案。
名称 | 类型 | 说明 |
---|---|---|
answer |
string |
回答文本。 |
answerSpan |
针对用户的问题回答 QnA 的跨度对象。 |
|
confidenceScore |
number |
答案置信度分数,值范围为 0 到 1。 |
dialog |
与应答关联的对话框。 |
|
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
提示输入答案。
名称 | 类型 | 说明 |
---|---|---|
displayOrder |
integer |
提示的索引 - 用于对提示进行排序。 |
displayText |
string |
显示的文本表示跟进问题提示。 |
qnaId |
integer |
对应于提示的 QnA ID。 |
LogicalOperationKind
设置为“OR”或“AND”以使用相应的逻辑运算。
名称 | 类型 | 说明 |
---|---|---|
AND |
string |
|
OR |
string |
MetadataFilter
查找与给定元数据列表关联的 QnA。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
logicalOperation | AND |
用于联接元数据筛选器的操作。 |
|
metadata |
对象,用于为每个元数据提供键值对。 |
MetadataRecord
对象,用于为每个元数据提供键值对。
名称 | 类型 | 说明 |
---|---|---|
key |
string |
QnA 中使用的元数据字典中的元数据键。 |
value |
string |
QnA 中使用的元数据字典中的元数据值。 |
QueryFilters
筛选知识库。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
logicalOperation | AND |
用于将元数据筛选器与源筛选器联接的逻辑操作。 |
|
metadataFilter |
查找与给定元数据列表关联的 QnA。 |
||
sourceFilter |
string[] |
查找与知识库中的任何给定源列表关联的 QnA。 |
RankerKind
要使用的排名器类型。
名称 | 类型 | 说明 |
---|---|---|
Default |
string |
默认排名器。 |
QuestionOnly |
string |
仅提问排名器。 |
ShortAnswerOptions
配置应答范围预测功能。
名称 | 类型 | 说明 |
---|---|---|
confidenceScoreThreshold |
number |
包含答案范围所需的最低阈值分数,值范围为 0 到 1。 |
enable |
启用或禁用应答范围预测。 |
|
topAnswersWithSpan |
integer |
从 1 到 10 跨度预测要考虑的顶级答案的数目。 |