用于流式意图检测的DialogFlow与Lex

时间:2018-09-23 11:52:02

标签: dialogflow chatbot amazon-lex aws-lex

对于我当前的项目,我正在寻找具有以下功能的机器人构建平台。

  1. 应支持通过API创建/更新新的/现有的机器人。

  2. 支持从流音频中检测意图。

  3. 在单个项目中启用多个机器人代理的托管。

  4. 用于修改现有漫游器/代理并将其另存为新API的API。

因此,我已经深入研究并使用DialogFlow开发了一个简单的工作原型。 DialogFlow支持从音频流中检测意图。但是不支持第1点和第3点。 DialogFlow目前不支持通过API创建代理。而且,最大的限制是,对于每个GCP项目,只能创建一个DialogFlow代理。假设我创建了多个agent-gcp项目。我还运行了一个Web应用程序,该应用程序通过WebSocket从另一个外部资源接收音频流以进行意图检测。为了将音频流定向到内置的特定DialogFlow代理,我需要在运行时解析该特定GCP项目的凭据。我已经读过我可以创建一个服务帐户并使用一个凭证来管理多个GCP项目,但这尚未尝试。

同样,如第4点所示,我也在寻找一种在运行时使用API​​创建现有代理的新版本的方法。当前,DialogFlow支持版本和环境,但是其实际目的并不像我提到的那样。此外,这是一个beta功能,不确定是否将其包含在生产中。

另一方面,我正在研究AWS Lex。 Lex支持我的要求之一。目前,AWS Lex不支持从流中检测意图(我无法为此找到任何API)。

所以我的问题是如何利用现有的DialogFlow功能满足我的要求?还是有一种方法可以从AWS Lex中的流音频输入中检测意图?

2 个答案:

答案 0 :(得分:0)

由于没有通过API创建新的Dialogflow代理的机制,因此 1。 4。的一部分是不可能的。

对于 3。,您已经提到过,您可以在运行时管理凭据,也可以配置一个可以访问所有GCP项目的服务帐户。

答案 1 :(得分:0)

供以后参考:Dialogflow上也可能有第1点和第4点。要以编程方式创建一个dialogflow代理,您需要执行以下操作:-

  1. 一个主项目,通过它您可以编排其他资源的创建。
  2. 以编程方式创建新的GCP项目(例如:使用Cloud Deployment Manager或Terraform)。
  3. 从主项目中以Dialogflow(和其他)管理员/用户的身份添加服务帐户。
  4. 使用Dialogflow v2 beta API创建新的漫游器,创建新的意图和新实体。

还可以将现有的漫游器导出为zip,修改zip内容(例如漫游器名称),并使用zip上传功能创建新的漫游器。然后继续更新/创建新的意图和实体。