预生成 API
使用自定义问题解答预生成 API,可以基于一段文本回答问题,而无需创建项目、维护问答对,也不必因为基础设施未充分利用而浪费成本。 此功能作为 API 提供,可用于满足问题和解答需求,无需了解有关自定义问题解答的详细信息。
如果给定了用户查询和文本块/段落,则 API 会返回一个答案,在有精确答案的情况下会返回精确答案。
示例 API 使用
假设你有一个或多个你要从中获取给定问题的答案的文本块。 一般说来,必须创建与文本块数目同样多的源。 但使用预生成 API,你现在可以查询文本块而无需在项目中定义内容源。
可以使用此 API 的其他场景包括:
- 你在为最终用户开发电子书阅读器应用,该应用可以突出显示文本、输入问题,以及在突出显示的一段文本中查找答案。
- 使用浏览器扩展后,用户可以根据浏览器页面当前显示的内容提出问题。
- 医疗机器人从用户那里获取查询,然后根据其确定的与用户查询最相关的医疗内容来提供答案。
下面是示例请求的示例:
示例请求
POST https://{Unique-to-your-endpoint}.api.cognitive.azure.cn/language/:query-text
基于单个文本块的示例查询
请求正文
{
"parameters": {
"Endpoint": "{Endpoint}",
"Ocp-Apim-Subscription-Key": "{API key}",
"Content-Type": "application/json",
"api-version": "2021-10-01",
"stringIndexType": "TextElements_v8",
"textQueryOptions": {
"question": "how long it takes to charge surface?",
"records": [
{
"id": "1",
"text": "Power and charging. It 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."
},
{
"id": "2",
"text": "You 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."
}
],
"language": "en"
}
}
}
示例响应
在上述请求正文中,我们基于单个文本块进行查询。 收到的针对上述查询的示例响应如下所示:
{
"responses": {
"200": {
"headers": {},
"body": {
"answers": [
{
"answer": "Power and charging. It 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.",
"confidenceScore": 0.93,
"id": "1",
"answerSpan": {
"text": "two to four hours",
"confidenceScore": 0,
"offset": 28,
"length": 45
},
"offset": 0,
"length": 224
},
{
"answer": "It 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.",
"confidenceScore": 0.92,
"id": "1",
"answerSpan": {
"text": "two to four hours",
"confidenceScore": 0,
"offset": 8,
"length": 25
},
"offset": 20,
"length": 224
},
{
"answer": "It can take longer if you’re using your Surface for power-intensive activities like gaming or video streaming while you’re charging it.",
"confidenceScore": 0.05,
"id": "1",
"answerSpan": null,
"offset": 110,
"length": 244
}
]
}
}
}
我们发现,在 API 响应中会收到多个答案。 每个答案都有特定的置信度评分,有助于了解答案的总体相关性。 答案范围表示是否也检测到了可能的简短答案。 用户可以利用这一置信度分数来确定要提供哪个答案来响应查询。
预生成 API 限制
API 调用限制
如果需要使用的文档的大小超出允许的限制,可将文本拆分成较小的文本块,然后再将其发送到 API。 在这种情况下,文档是由文本字符组成的已定义的单个字符串。
这些数字表示每个单独的 API 调用的限制:
- 文档数:5。
- 单个文档的最大大小:5,120 个字符。
- 每个文档最多 3 个响应。
支持的语言代码
预生成的 API 支持以下语言代码。 这些语言代码符合 ISO 639-1 代码标准。
语言代码 | 语言 |
---|---|
af | 南非荷兰语 |
am | 阿姆哈拉语 |
ar | 阿拉伯语 |
as | 阿萨姆语 |
az | 阿塞拜疆语 |
ba | 巴什基尔语 |
be | 白俄罗斯语 |
bg | 保加利亚语 |
bn | 孟加拉语 |
ca | 加泰罗尼亚语、巴伦西亚语 |
ckb | 中库尔德语 |
cs | 捷克语 |
cy | 威尔士语 |
da | 丹麦语 |
de | 德语 |
el | 希腊语,现代 (1453-) |
en | 英语 |
eo | 世界语 |
es | 西班牙语、卡斯提尔语 |
et | 爱沙尼亚语 |
eu | 巴斯克语 |
fa | 波斯语 |
fi | 芬兰语 |
fr | 法语 |
ga | 爱尔兰语 |
gl | 加利西亚语 |
gu | 古吉拉特语 |
he | 希伯来语 |
hi | Hindi |
小时 | 克罗地亚语 |
hu | 匈牙利语 |
hy | 亚美尼亚语 |
id | 印度尼西亚语 |
is | 冰岛语 |
it | 意大利语 |
ja | 日语 |
ka | 格鲁吉亚语 |
kk | 哈萨克语 |
km | 高棉语 |
kn | 卡纳达语 |
ko | 韩语 |
ky | 吉尔吉斯语,吉尔吉斯 |
la | 拉丁语 |
lo | 老挝语 |
lt | 立陶宛语 |
lv | 拉脱维亚语 |
mk | 马其顿语 |
ml | 马拉雅拉姆语 |
mn | 蒙古语 |
mr | 马拉地语 |
ms | 马来语 |
mt | 马耳他语 |
my | 缅甸语 |
ne | 尼泊尔语 |
nl | 荷兰语;佛兰德语 |
nn | 挪威语(尼诺斯克语) |
否 | 挪威语 |
、 | 奥里亚语 |
pa | 旁遮普语 |
pl | 波兰语 |
ps | 普什图语 |
pt | 葡萄牙语 |
ro | 罗马尼亚语 |
ru | 俄语 |
sa | 梵语 |
sd | 信德语 |
si | 僧伽罗语 |
sk | 斯洛伐克语 |
sl | 斯洛文尼亚语 |
sq | 阿尔巴尼亚语 |
sr | 塞尔维亚语 |
sv | 瑞典语 |
sw | 斯瓦希里语 |
ta | 泰米尔语 |
te | 泰卢固语 |
tg | 塔吉克语 |
th | 泰语 |
tl | 他加禄语 |
tr | 土耳其语 |
tt | 鞑靼语 |
ug | 维吾尔语,维吾尔 |
uk | 乌克兰语 |
ur | 乌尔都语 |
uz | 乌兹别克语 |
vi | 越南语 |
yi | 意第绪语 |
zh | 中文 |
预生成 API 参考
请访问完整的预生成 API 示例文档,了解调用 API 所需的输入和输出参数。