我希望我的google助手应用程序首先与我的网络服务器通信然后再进行对话框流程

时间:2018-02-27 05:28:31

标签: php node.js actions-on-google dialogflow

我希望我的Google智能助理应用程序首先与我的网络服务器通信然后再与Dialogflow通信。 DialogFlow记录的方式,助手首先与它对话,然后传递给我的webhook。我想以另一种方式做到这一点。

Technical architecture of google assistant

1 个答案:

答案 0 :(得分:3)

要让Google智能助理直接与您的服务器对话(中间没有Dialogflow),您需要使用Actions SDK。您将创建一个actions.json文件,用于定义触发信息和webhook的URL。 (你无法摆脱webhook - 只需改变它的调用方式。)你的webhook将使用与Dialogflow的JSON格式不同的JSON调用,或者你可以使用node.js与Dialogflow版本具有类似接口的库。

然后,您的webhook可以使用/query endpoint(对于Dialogflow V1 API)或detectIntent message(对于Dialogflow V2 API)调用Dialogflow。您可以向用户发送文本或指示用户操作(或者,实际上,您想要的任何内容)的事件以及您希望的参数和上下文。 Dialogflow将从其回复部分发送回复,或将其发送到另一个履行webhook - 无论您选择什么。

您的服务器将收到此回复以及所设置的任何上下文和参数。听起来你可能会将回复发送给用户,可能没有进一步处理,尽管你可以做任何你想做的事情。您可能希望将上下文信息存储在conversation tokenuser storage object或服务器希望使用的其他数据存储中。

有一些samples for using the Actions SDK虽然没有一个说明从webhook调用Dialogflow。 (这不是一个非常常见的模式 - 大多数用例在其他方面效果更好。)samples for Dialogflow主要用于webhooks,尽管#34;代理人类切换"确实说明了从您的代码发送到Dialogflow。