如何在 IBM Watson Assistant 用户界面的情况下获取意图值?

How can I get intent value in condition of IBM Watson Assistance user interface?

If bot recognizes 的部分我可以说 intents[1].confidence > 0.4 但我不知道那个意图到底是什么,那么有没有办法得到那个?

我可以在 Respond 部分使用 <? intents ?> 对象获得所有意图类型和置信度,但它对 If bot recognizes节。

只需使用 intents[1].intent 即可获取意图。请注意,您要求的是第二个选择,而不是第一个。第一个是 intents[0]

如果您要解析一棵复杂的树,那么每次都查找它可能是个问题。所以有两种方法。

  1. 加载具有意图名称的上下文变量,并检查它。这会增加对象存储的开销,但可以使您更加动态。

  2. 如果是你想要的第二个选择,而你不关心第一个选择:在你的主执行节点上,设置intents[0].intent = intents[1].intent和[=13=相同].这将允许正常查找接管。

这里有关于 Watson Assistant 中对象的更多详细信息:

https://console.bluemix.net/docs/services/conversation/expression-language.html#access-intent

我用这样的过滤器得到置信度值:

示例:

    <? intents.filter("x", "x.intent == 'name_of_intent'").![confidence].get(0) ?>

解释:

  1. 获取intents数组:intents.filter("x", "x.intent == 'name_of_intent'"),其中"x"为临时变量,name_of_intent为想要获取的intents

  2. 然后,你得到另一个数组。然后要获得置信度值,您必须 ![confidence].get(0)。仅此而已。

方法说明: JSONArray.filter(temp, "temp.property operator comparison_value")

所以..就像在文档中一样: https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methods