IBM Watson Assistant:带上下文变量的正则表达式

时间:2019-03-11 07:56:40

标签: ibm-cloud watson-conversation

我正在收集一些带有槽的上下文变量,它们工作得很好。 enter image description here

因此,我决定在对话的另一个节点中进行操作,检查以下上下文变量之一是否为特定数字:

我正在考虑启用多响应,并检查例如$dni:1(它是一个整数,仅是1个整数的模式),还是2或3:

enter image description here

但这不起作用。我试图用不同的方法解决它几天,但我确实找不到解决方法。

我的猜测是上下文变量具有值,您可以将其打印出来以像响应用户名和诸如此类的东西(确实有用!)进行响应那样使用它,但是无法比较值。

我对此有何见解?

1 个答案:

答案 0 :(得分:1)

Watson Assistant使用简写语法,但也支持更复杂的表达式。您可以做的是在JSON编辑器中编辑条件。对于该条件,在上下文变量的值上使用类似matches()的函数。

请注意,it is not recommended to check for context variables in the slot conditions。您可以使用多响应。另一种方法是将检查放入响应本身。在那里,您可以use predicates to generate the answer

<? context.dni==1 ? 'Very well' : 'Your number is not 1' ?>

您可以嵌套评估以得到三个不同的答案。另一种方法是构建响应数组并使用 dni 作为键。

您可以考虑使用Numbers system entity,而不是匹配特定的整数。 Watson Assistant支持多种语言。作为一种好处,用户可以回答“第一个”,“第二个选项”等,并且机器人仍然可以理解,并且您的逻辑仍然可以路由到正确的答案。