所以我决定在对话的另一个节点做,检查其中一个上下文变量是否是特定的数字:
我正在考虑启用多响应并检查是否,例如$dni:1
(它是一个整数,仅1个整数的模式),或者它是2还是3:
但这不起作用。我试图用不同的方法解决它几天但我真的找不到通过它的方法。
我的猜测是一个上下文变量有一个值,你可以打印它来使用它,比如响应用户的名字和类似的东西(这确实很有用!),但是比较值是不可能的。
我能收到任何有关这方面的见解吗?
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支持多种语言。作为一个好处,用户可以回答“第一个”,“第二个选项”等,机器人仍然会理解,你的逻辑仍然可以找到正确的答案。