我需要获取Watson对话 API中某个问题的可用选项吗?
例如,我有一个对话应用程序,在某些情况下 Y 需要给用户一个列表以从中选择一个选项。
所以我正在寻找一种方法来获取某个问题的可用回复选项。
我无法回答 NPM 部分,但您可以通过设置alternate_intents
为来获得前 10 个可能答案的列表true
。例如。
{
"context":{
"conversation_id":"cbbea7b5-6971-4437-99e0-a82927607079",
"system":{
"dialog_stack":["root"
],
"dialog_turn_counter":1,
"dialog_request_counter":1
}
},
"alternate_intents":true,
"input":{
"text":"Is it hot outside?"
}
}
这将最多返回前十个答案。如果意图数量有限,它只会显示它们。
您的部分 JSON 响应将具有以下内容:
"intents":[{
"intent":"temperature",
"confidence":0.9822100598134365
},
{
"intent":"conditions",
"confidence":0.017789940186563623
}
这不会让您从节点获得输出文本。因此,您需要将答案存储在其他地方以进行交叉引用。
另请注意,仅仅因为它在列表中,并不意味着它是给最终用户的有效答案。需要考虑置信水平。
置信水平也不像正常的置信度那样工作。你需要确定你的上限和下限。我在这里简要介绍一下。
与早期版本的 WEA 不同,置信度与您拥有的意图数量有关。因此,找到最低置信度的最快方法是发送一个非常模棱两可的词。
这些是我在确定温度或条件时得到的结果。
treehouse = conditions / 0.5940327076534431
goldfish = conditions / 0.5940327076534431
music = conditions / 0.5940327076534431
看到图案了吗?所以我将低置信水平设置为 0.6。接下来是确定较高的置信范围。您可以通过在同一问题文本中混合意图来做到这一点。可能需要几次才能获得合理的结果。
这些是尝试这个的结果(C = 条件,T = 温度)。
hot rain = T/0.7710267712183176, C/0.22897322878168241
windy desert = C/0.8597747113239446, T/0.14022528867605547
ice wind = C/0.5940327076534431, T/0.405967292346557
我故意遗漏了高信心的人。在这方面,我将使用 0.8 作为高置信水平。