繁体   English   中英

Watson Assistent 中的对话节点和意图问题

[英]Problem with dialog nodes and intents in Watson Assistent

我正在使用 IBM Watson Assistant 创建聊天机器人。 我正在使用带有意图、实体和对话流|树的 Web 界面(我不知道它是如何调用的,我只是将其称为 Web 界面)。 我有四个问题,希望有人能帮忙解决。

  1. 我创建了两个 Intens:#how_are_you 和一个例子“你好吗?” 和意图#feeling_good 示例“我很好”。 当然,我有更多关于这两个意图的例子。 在对话框中,我现在有一个寻找#feeling_good 的父节点和一个寻找#how_are_you 的子节点(跳过中间的用户输入)。 当用户现在输入句子“我很好。你好吗?” 那么只有#feeling_good 被触发,而不是#how_are_you。 如何仅用一个用户输入触发两个意图?

  2. 我希望对话框中有一个节点等待 100 秒,然后向用户发送另一条消息。 等待没有问题(使用暂停)但是如果用户在等待期间没有发送另一条消息,我怎么能做到在 100 秒后只发送一条消息? 这意味着当用户发送消息时,应该取消等待节点。

  3. 我有一个检查特定意图的节点。 当意图不匹配时,我将跳回到父节点。 问题是来自父节点的文本每次都会重复。 跳回时如何防止这种重复?

  4. 最后一个问题可能有点棘手。 我想定义一个数字数组 [1,2,3,4,5]。 然后一个节点应该从该数组(例如2)中采样一个没有替换的随机数,即剩余的数组是[1,3,4,5]。 一段时间后,另一个节点应该从数组中随机选择另一个数字(比如 4)。 等等。 如何实施? 我知道变量(例如 $var),但我不知道如何表示数组和样本随机数。

非常感谢您提前回答。 并祝大家新年快乐。

1) 在 Watson Assistant 中,始终首先使用具有最高置信度的意图。 因此,处理由一个句子触发的多个意图是很棘手的。 “最佳”解决方案是使用复合意图 - #HELLO_HOW_ARE_YOU。 或者,您可以创建条件来检查返回的前两个意图是否是 #HELLO 和 #HOW_ARE_YOU 的组合

2) 由于不活动而等待和发送消息最好由在您的界面中实现聊天控制台的客户端处理。 WA 不太适合这些类型的操作,虽然有一些支持,但更好的处理方法是让您的客户端应用程序 - 当检测到不活动时 - 发送一些将映射到 #INACTIVITY_INTENT 的内容,WA 将响应您的消息加上那个意图。

3)不要跳转到节点而是跳转到该节点的第一个子节点并使用wait for user input

4)这是可能的。 WA 表达式语言支持获取随机数、获取数组的大小和从数组中删除元素。 例如<? $array.remove(new Random().nextInt(3))?> <? $array.remove(new Random().nextInt(3))?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM