我正在使用 Node.js 和 Dialogflow一个小的 Google 操作。
在询问用户是否想要发表评论后,我试图接收来自用户的所有输入,如果用户想要发表评论,则用户所说的所有内容都必须存储在我的数据库中。
问题是,在询问他们是否要留言后,我的下一个输入被检测为后备意图。
我尝试过创建自定义事件,但无法使其工作。
关于如何接收评论并且不陷入后备意图有什么建议吗?
最佳答案
简短的回答是 - 你不能。但是......有一些方法可以设置额外的后备意图,这些意图仅在您期待自由格式的评论时才会触发。我不确定你想用事件做什么,但这几乎肯定不是正确的方法 - 事件不是用于用户对话输入,而是用于其他触发事件(GUI 触发器、无输入事件等) .
只要输入与其他 Intent 之一不匹配,就会触发后备 Intent。由于您希望您的回复是自由格式的,因此默认情况下它不能与其他任何内容匹配。无法创建匹配的普通 Intent。
但是,您可以拥有多个基于 context 进行区分的后备意图。 .
这样,当您要求用户提供评论时,您可以设置一个“评论”上下文,并拥有一个以“评论”作为输入上下文的后备意图。要以这种方式创建后备意图,请选择三点菜单图标
然后“创建后备意图”
输入后备意图的名称,添加“注释”(或您选择的任何上下文)作为输入上下文,并将输出上下文中的生命周期更改为 0(以便在用户完成后清除上下文)。不要忘记打开“履行”。
然后,您可以获取用户在 Webhook 中所说内容的全文,并将其保存到数据库中。
但是,有一个警告 - 助理通常不希望用户讲话很长时间,因此它可能会打断他们的评论,或者如果他们暂停,即使是短暂的暂停。
关于node.js - 接收用户输入的评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908030/