将现有自定义聊天机器人移植为 Google 助理操作

Port existing custom chatbot as Google Assistant action

我们有一个框架可以实现聊天机器人/语音助手逻辑,用于处理健康领域的复杂对话。一切都在我们的服务器端实现。这使我们可以完全控制响应的生成方式。

通道(例如 Alexa 或 Facebook Messenger 云)调用我们的 webhook:

集成新频道涉及将返回的响应转换为频道期望的形式并设置一些标志(有语音、有显示等)。

到目前为止,这个简单的框架已经适用于 Facebook Messenger、Cortana、Alexa(需要进行一些黑客攻击才能放弃它的意图和插槽识别),our web chatbot

我们想为 Google 助手 操作编写薄层支持。

是否有任何方法可以将 Google 助理用户的所有输入原封不动地传递到如上所述的 webhook 中,并完全控制生成响应和确定对话结束的方式?

我不想深入研究 API.AI 构建对话的那些繁琐方法,这些方法似乎适用于微不足道的场景,例如订购 Uber,但对于较长的对话似乎非常糟糕。

由于您的系统已经有了自然语言理解层,因此您不需要 API.AI/Dialogflow,您可以完全跳过这一层。 (NLU 很有用,即使对于大型和广泛的对话也是如此,但在您已经通过其他方式定义对话的情况下没有意义。)

您需要使用 Actions SDK(有时在其使用的配置文件之后称为 actions.json)来定义触发短语,但之后您将获得所有文本用户通过向您发送 JSON 的网络钩子作为您对话的一部分说。您将回复 JSON,其中包含 text/audio 回复、卡片上的图片、可能的建议卡片等。