node.js - 接收用户输入的评论

标签 node.js dialogflow-es actions-on-google

我正在使用 Node.js 和 Dialogflow一个小的 Google 操作。

在询问用户是否想要发表评论后,我试图接收来自用户的所有输入,如果用户想要发表评论,则用户所说的所有内容都必须存储在我的数据库中。

问题是,在询问他们是否要留言后,我的下一个输入被检测为后备意图。

我尝试过创建自定义事件,但无法使其工作。

关于如何接收评论并且不陷入后备意图有什么建议吗?

最佳答案

简短的回答是 - 你不能。但是......有一些方法可以设置额外的后备意图,这些意图仅在您期待自由格式的评论时才会触发。我不确定你想用事件做什么,但这几乎肯定不是正确的方法 - 事件不是用于用户对话输入,而是用于其他触发事件(GUI 触发器、无输入事件等) .

只要输入与其他 Intent 之一不匹配,就会触发后备 Intent。由于您希望您的回复是自由格式的,因此默认情况下它不能与其他任何内容匹配。无法创建匹配的普通 Intent。

但是,您可以拥有多个基于 context 进行区分的后备意图。 .

这样,当您要求用户提供评论时,您可以设置一个“评论”上下文,并拥有一个以“评论”作为输入上下文的后备意图。要以这种方式创建后备意图,请选择三点菜单图标

enter image description here

然后“创建后备意图”

enter image description here

输入后备意图的名称,添加“注释”(或您选择的任何上下文)作为输入上下文,并将输出上下文中的生命周期更改为 0(以便在用户完成后清除上下文)。不要忘记打开“履行”。

enter image description here

然后,您可以获取用户在 Webhook 中所说内容的全文,并将其保存到数据库中。

但是,有一个警告 - 助理通常不希望用户讲话很长时间,因此它可能会打断他们的评论,或者如果他们暂停,即使是短暂的暂停。

关于node.js - 接收用户输入的评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908030/

相关文章:

javascript - 如何使用 Yargs 实现多个子命令?

javascript - 如何使用 Node js 将 json 发送到我的 View

node.js - 我怎么使用 apollo combineResolvers() 错误?

google-cloud-functions - 在对话流中处理 NO USER INPUT

node.js - order-update.js 发送 "{}"作为事务 api actions-on-google 中的响应

node.js - 必须设置使用 web-fulfillment 和 firebase 抛出 MalformedResponse 'final_response' 的操作

javascript - 在 "Pro Javascript for Web Dev"书中找不到 server.js

node.js - 使用 Nodejs 将聊天机器人从自定义网站移交给 Zendesk Message

node.js - 谷歌模拟器上的操作是否会阻止外部请求?

node.js - Google V2 webhook 外部 api 访问的操作