因此,我决定在对话的另一个节点中进行操作,检查以下上下文变量之一是否为特定数字:
我正在考虑启用多响应,并检查例如$dni:1
(它是一个整数,仅是1个整数的模式),还是2或3:
但这不起作用。我试图用不同的方法解决它几天,但我确实找不到解决方法。
我的猜测是上下文变量具有值,您可以将其打印出来以像响应用户名和诸如此类的东西(确实有用!)进行响应那样使用它,但是无法比较值。
我对此有何见解?
答案 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支持多种语言。作为一种好处,用户可以回答“第一个”,“第二个选项”等,并且机器人仍然可以理解,并且您的逻辑仍然可以路由到正确的答案。