首页 > 解决方案 > 如何使用 nodejs 在 Dialogflow 中处理 webhook 实现

问题描述

我正在寻找有关如何设计代码以处理 Dialogflow 发送到我的服务器的请求的一些建议。Dialogflow 只允许设置一个 webhook 来处理所有意图。假设我有 5 个不同的意图;他们都会在我的服务器上调用同一个 webhook。现在,如何根据意图优雅地管理服务器端不同的工作流程?我理想情况下用来区分的参数包含在req.body.queryResult.intent.displayName;并指示当前意图的名称。现在我有两个想法,使用快速重定向方法使用意图作为路径的一部分,或者创建一个以意图为关键的处理程序字典。你有什么建议吗?

标签: javascriptnode.jsdesign-patternsdialogflow-eschatbot

解决方案


虽然已弃用dialogflow -fulfillment库,但它使用您的后一种方法 - 从 Intent 名称创建一个 Map 到 Handler 函数并将此映射交给 Dispatcher。这是一种简单、直接、快速的方法。

multivocal库采用类似但更广泛的方法,允许您根据 Intent 名称或分配的 Action 值注册处理程序,并根据 Intent、Action 或在处理程序。

重定向到一个新的、基于路径的方法似乎没有给你任何东西。


推荐阅读