首页 > 解决方案 > 用于流式意图检测的 DialogFlow 与 Lex

问题描述

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

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

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

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

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

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

同样正如第 4 点所指出的,我还在寻找一种方法,可以在运行时使用 API 创建现有代理的新版本。目前,DialogFlow 支持版本和环境,但这样做的实际目的并不是我所说的。此外,这是一个测试版功能,不确定它是否会包含在生产中。

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

所以我的问题是如何利用现有的 DialogFlow 功能来满足我的要求?或者有没有办法从 AWS Lex 中的流式音频输入中检测意图?

标签: dialogflow-eschatbotamazon-lexaws-lex

解决方案


没有通过 API 创建新的 Dialogflow 代理的机制,因此部分1.4.是不可能的。

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


推荐阅读