对于我当前的项目,我正在寻找具有以下功能的机器人构建平台。
应该支持通过 API 创建/更新新的/现有的机器人。
支持从流式音频中检测意图。
在单个项目中启用多个机器人代理的托管。
用于修改现有机器人/代理并将其另存为新的 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 中的流式音频输入中检测意图?