Dialogflow 如何将几个代理合并为一个

Dialogflow how to merge couple of agents in one

我是DialogFlow的新人,我开始创建代理,从smaltalk scratch开始。问题是我如何才能将更多预构建代理(如警报和应用程序管理)以及货币转换器附加到新创建的代理中?

感谢您的帮助。

您可以 import prebuilt agents 加入您现有的代理,以扩展您的代理响应各种输入的能力。导入将向您现有的代理添加意图和实体,扩展其功能,并且不会删除或更改任何现有的意图、实体或功能,如闲聊。

如果您有另一个 Dialogflow 代理,您希望 "merge" 进入另一个代理,您可以 export one agent and import it into another 到 "merge" 这两个代理的功能。请注意,这可能会导致意外行为,因此不推荐作为开发技术。

Import prebuilt agent 说:

Importing a Prebuilt Agent creates a new agent. If you want to include Prebuilt Agent functionality into an existing agent, you'll need to move the intents from the newly created Prebuilt Agent into your existing agent.

因此,创建一个新项目,select并将在新代理中创建的所有意图移动到您需要的代理中。

上周我遇到了一个类似的问题,我们将 Prebuilt -SmallTalk Intents 合并到新创建的 Dialogflow Agent。令人惊讶的是,在 Agent 中添加的自定义 Intents 停止工作,但 Smalltalk Intents 继续工作。然而,他们继续在 Dialogflow 控制台 Web 代理上工作,但如果我们从我们的代码调用服务,它总是回复默认回退意图。 当您 copy/import/clone/export 预建意图时会发生这种情况。

我查看了这个问题将近一天,最后发现问题出在您的 API 请求中发送的语言。我发送的是 en-US 作为语言代码。在您添加 Prebuilt 代理的那一刻,它停止使用 en-US 语言。这是一种奇怪的行为,因为如果我们不添加任何预构建的 Intents,同一个代理可以在 en-US 上正常工作。

解决方案是发送语言代码 - "en" 并且自定义 Intent 可以正常工作。

当我使用从我的代理的 Dialogflow 控制台 Web 测试中复制的 curl 命令时,该解决方案使我点击了——因为它有效我将请求与 Java 代码发送的请求进行了比较,发现语言代码存在差异.

可能是 DialogFlow 中的一些集成问题。