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

问题描述 投票:1回答:1

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

所以我决定在对话的另一个节点做,检查其中一个上下文变量是否是特定的数字:

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

enter image description here

但这不起作用。我试图用不同的方法解决它几天但我真的找不到通过它的方法。

我的猜测是一个上下文变量有一个值,你可以打印它来使用它,比如响应用户的名字和类似的东西(这确实很有用!),但是比较值是不可能的。

我能收到任何有关这方面的见解吗?

ibm-cloud watson-conversation
1个回答
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支持多种语言。作为一个好处,用户可以回答“第一个”,“第二个选项”等,机器人仍然会理解,你的逻辑仍然可以找到正确的答案。

© www.soinside.com 2019 - 2024. All rights reserved.