或条件在 Dialogflow CX 中不起作用

OR condition not working in Dialogflow CX

我有一个包含多个参数的意图。我建立了一个路由,当第一个参数或第二个参数不为空时应该被激活:

$intent.params.tipo3.resolved : "" OR $intent.params.valutarapporti.resolved : ""

如果其中一个参数不为空,则代理应跳转到另一个页面。

问题是只有当第一个参数不为空时才有效;如果第一个为空而第二个不为空,则不会发生转换。条件“OR”似乎有问题。

请注意参数被正确识别:用户说出符合正确意图的内容,参数“valutarapporti”被识别但随后没有转换发生。

如果我在两条不同的路线中将这两种情况分开,显然它可行,但我希望有一条路线来处理这么简单的事情。我尝试将它们设置为会话参数,但结果没有改变(这不是真正的问题:就像我说的,参数被识别,问题在于转换)。

要定义一个 condition when only one intent parameter is set,但不能同时定义两者,您可以使用以下内容:

$intent.params.tipo3.resolved = null OR $intent.params.valutarapporti.resolved = null

在这种情况下,您可能需要为同时设置两个参数的情况定义单独的条件。

要定义设置两个 Intent 参数之一或同时设置两个参数的条件,您可以使用以下内容:

$intent.params.tipo3.resolved != null OR $intent.params.valutarapporti.resolved != null

Svetlana 发布的答案解决了我的问题;我要补充一点,我也尝试将条件定义为

$intent.params.tipo3.resolved != "" OR
$intent.params.valutarapporti.resolved != ""

这解决了我眼前的问题。但是,这意味着具有此条件的路由始终有效,而其他路由甚至从未被评估过。