我们有一个框架,可以实现聊天机器人/语音助理逻辑,用于处理 Health 域中的复杂对话 . 一切都在我们的服务器端实现 . 这使我们可以完全控制响应的生成方式 .
Channels (例如Alexa或Facebook Messenger Cloud )调用我们的webhook:
-
当用户消息时,平台将这些消息发送到我们的webhook:哈希用户ID,消息文本(聊天消息或转录语音)
-
我们的webhook以适当的结构化响应进行响应,包括要显示的文本,口语,可能的选择按钮和一些图像等 . 它还包括当前会话是否已完成或预期用户输入的标志 .
集成新通道涉及将返回的响应转换为通道所期望的形式并设置一些标志(具有语音,具有显示等) .
这个简单的框架到目前为止已经为Facebook Messenger,Cortana,Alexa工作了(需要一点点黑客才能放弃它的意图和插槽识别),our web chatbot .
我们想为 Google Assistant 动作写一层薄薄的支持 .
有没有办法将助手用户的所有输入完整地传递到如上所述的webhook中,并完全控制响应的生成方式并确定会话结束?
我宁愿不深入研究API.AI构建会话的繁琐方式,这对于诸如订购Uber之类的微不足道的情况似乎是好的,但对于更长时间的对话似乎非常糟糕 .
1 回答
由于您已经为系统配备了自然语言理解层,因此不需要API.AI/Dialogflow,您可以完全跳过此层 . (即使对于大型和广泛的对话,NLU也很有用,但是还没有通过其他方式定义对话 . )
您需要使用Actions SDK(有时在其使用的配置文件后称为actions.json)来定义触发短语,但之后您将使用包含文本/音频响应的JSON回复,卡片上的图像,可能是建议芯片等