首页 > 解决方案 > IBM Watson Assistant:具有上下文变量的正则表达式

问题描述

我正在收集一些带有插槽的上下文变量,它们工作得很好。在此处输入图像描述

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

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

在此处输入图像描述

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

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

我能收到关于此的任何见解吗?

标签: ibm-cloudwatson-conversation

解决方案


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

请注意,不建议在槽条件中检查上下文变量。您可以使用多重响应。另一种方法是将检查放入响应本身。在那里,您可以使用谓词来生成答案

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

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

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


推荐阅读