2

我需要获取Watson对话 API中某个问题的可用选项吗?

例如,我有一个对话应用程序,在某些情况下 Y 需要给用户一个列表以从中选择一个选项。

所以我正在寻找一种方法来获取某个问题的可用回复选项。

4

1 回答 1

2

我无法回答 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 作为高置信水平。

于 2016-09-25T05:20:05.870 回答