0

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

  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 中的流式音频输入中检测意图?

4

2 回答 2

1

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

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

于 2018-09-26T15:40:56.090 回答
0

供将来参考:第 1 点和第 4 点也适用于 Dialogflow。要以编程方式创建对话流代理,您需要执行以下操作:-

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

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

于 2020-10-12T13:07:45.093 回答