ibm-cloud - IBM Watson Assistant:具有上下文变量的正则表达式
问题描述
所以我决定在对话的另一个节点做,检查这些上下文变量中的一个是否是一个特定的数字:
我正在考虑启用多重响应并检查例如$dni:1
(它是一个整数,仅 1 个整数的模式),或者它是 2 还是 3:
但这不起作用。我试图用不同的方法解决它几天,但我真的找不到解决方法。
我的猜测是上下文变量有一个值,你可以打印它来使用它,就像用用户名和类似的东西响应(这确实很有用!),但是比较值是不可能的。
我能收到关于此的任何见解吗?
解决方案
Watson Assistant 使用简写语法,但也支持更复杂的表达式。您可以做的是在 JSON 编辑器中编辑条件。在那里,对于条件,在上下文变量的值上使用类似match()的函数。
请注意,不建议在槽条件中检查上下文变量。您可以使用多重响应。另一种方法是将检查放入响应本身。在那里,您可以使用谓词来生成答案。
<? context.dni==1 ? 'Very well' : 'Your number is not 1' ?>
您可以嵌套评估以获得三个不同的答案。另一种方法是构建响应数组并使用dni作为键。
您可以考虑使用Numbers 系统实体,而不是匹配特定的整数。Watson Assistant 支持多种语言。作为一个好处,用户可以回答“第一个”、“第二个选项”等,机器人仍然会理解并且你的逻辑仍然可以路由到正确的答案。
推荐阅读
- html - 如何在 div 元素中包含标题和滚动部分
- ssis - SSIS - 电源查询的输出如何成为数据流中另一个电源查询的导入
- java - 递归将一个单词分成三个或更多单词java
- c - 'compareWeight' 之前的预期声明说明符或 '...'
- nativescript - 如何在 NativeScript 中实现超过 5 秒的无缝音频循环?
- r - 有没有办法在 blogdown/hugo 中更改 html 帖子的宽度页面?
- python - 镜像包含锚定数据的 CNN 训练图像有哪些缺点?
- vba - 连接链接表的字段
- mysql - springboot + JPA + MySql + Entity 表生成大写
- ansible - Ansible 原始模块 - 如何处理 SFTP/SCP 上的密码提示?