node.js - 接收用户输入的评论
问题描述
我将 Node.js 和Dialogflow用于小型 Google Action。
在询问用户是否想发表评论后,我试图接收用户的所有输入,如果用户想发表评论,用户所说的所有内容都必须存储在我的数据库中。
问题是,在询问他们是否要留言后,我的下一个输入被检测为后备意图。
我试图制作一个自定义事件,但我无法让它工作。
关于如何接收评论并且不属于后备意图的任何建议?
解决方案
简短的回答是——你不能。但是......有一些方法可以设置额外的后备意图,这些意图仅在您期望自由形式的评论时触发。我不确定您要对事件做什么,但这几乎肯定也不是正确的方法 - 事件不是用于用户对话输入,而是用于其他触发事物(GUI 触发器、无输入事件等) .
每当输入与其他 Intent 之一不匹配时,就会触发 Fallback Intent。由于您希望您的响应是自由格式的,默认情况下,它不能匹配任何其他内容。无法创建匹配的普通 Intent。
但是,您可以拥有多个基于context区分的 Fallback Intent 。
这样,当您要求用户提供评论时,您可以设置“评论”上下文并拥有一个以“评论”作为输入上下文的后备意图。要以这种方式创建后备意图,请选择三点菜单图标
然后“创建后备意图”
为 Fallback Intent 输入一个名称,添加“comment”(或您选择的任何上下文)作为输入上下文,并在输出上下文中将生命周期更改为 0(以便在用户完成后清除上下文)。不要忘记打开 Fulfillment。
然后,您可以获取用户在 webhook 中所说的全文并将其保存到数据库中。
然而,一个警告 - 助手通常不希望用户说话很长时间,因此它可能会切断他们的评论,或者如果他们暂停,甚至是短暂的。
推荐阅读
- css - 如何向我的 shinyapp.io 添加自定义字体?
- python - python csv文件读取:将第一行变成列标题,next(reader)返回不需要的字符
- corda - 跟踪 Corda 流
- html - 单选按钮不会出现在文本旁边
- c# - 如何在 imagemagick C# 中使用 4 个角(x,y)剪辑图像
- python - Matplotlib:另一种颜色的形状内部
- java - Drive API v3 不支持提交的 html 的 css text-indent
- php - 有没有替代 laravel bcrypt 函数的函数
- c# - 带有.Net Standard HttpClient 的 Xamarin Forms 项目不从 api 返回响应
- java - 如何执行独立的 javaexec 任务