预生成 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 所需的输入和输出参数。