Ibm cloud IBMWatson助手:带有上下文变量的正则表达式

Ibm cloud IBMWatson助手:带有上下文变量的正则表达式,ibm-cloud,watson-conversation,Ibm Cloud,Watson Conversation,我正在用插槽收集一些上下文变量,它们工作得很好 所以我决定在对话的另一个节点中,检查这些上下文变量中是否有一个是特定的数字: 我正在考虑启用多个响应,并检查是否为,例如$dni:1(它是一个整数,仅为1整数的模式),或者它是2还是3: 但这是行不通的。几天来,我一直试图用不同的方法解决这个问题,但我真的找不到解决的办法 我的猜测是,上下文变量有一个值,您可以打印它来使用它,就像响应用户名之类的东西一样(这确实很有用!),但是比较值是不可能的 对此我有什么见解吗?Watson Assistant

我正在用插槽收集一些上下文变量,它们工作得很好

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

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

但这是行不通的。几天来,我一直试图用不同的方法解决这个问题,但我真的找不到解决的办法

我的猜测是,上下文变量有一个值,您可以打印它来使用它,就像响应用户名之类的东西一样(这确实很有用!),但是比较值是不可能的


对此我有什么见解吗?

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

请注意。您可以使用多个响应。另一种方法是将检查放入响应本身。在那里,你可以


您可以将评估嵌套为有三个不同的答案。另一种方法是构建一系列响应,并使用dni作为键


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

我明白了,但我不是在插槽中检查它们,而是多响应,对吗?我使用插槽填充所有变量(用户实际上不填充任何内容,他只输入自己的id,在内部,我在watson中输出在db中检查的所有变量)。另外,
matches()
的链接已断开(或者,
matches()后面的链接已断开)
适合我。尝试将此作为基本URI:使用插槽填充变量是可以的。正确的说法是,您应该使用多个响应或带有逻辑的单个响应。您的总体目标是什么?在本教程中,我使用的是后端数据库,链接无法正常工作!我将手动查看ibm文档,不要担心!关于主要目标用户具有此
dni
(一个带模式的整数
\d
),根据值的不同,bot的响应应该有所不同。如果是1,
X
,如果是2,
Y
,如果是3
Z
。例如:1:“您没有包含X服务”,2:“您包含了部分服务”,3:“您都包含了服务!”。我添加了更多详细信息。这些链接基于文档,然后导航到WA服务。我会将它标记为一个答案,因为它可能会解决所有与此相关的问题!我会继续尝试你告诉我的内容,这可能会得到它!非常感谢高级!如果不麻烦,如果我无法管理它,我会到这里来!
<? context.dni==1 ? 'Very well' : 'Your number is not 1' ?>