使用Google Assistant在Dialogflow中的第一个Intent响应之前初始化会话实体类型

问题描述 投票:2回答:1

我的应用当前在“欢迎意图”响应期间加载会话实体类型。

因此,如果用户说:

与TestPoemApp交谈。

我的应用程序将响应:

嗨。您想听什么诗?

并且还会发送webhookResponse.SessionEntityTypes,这些webhookResponse.SessionEntityTypes定义了实体“ PoemType”(fulfillment method)的会话实体类型。用户然后可以说:

朗诵我的自定义诗。

其中“我的自定义诗”是实体“ PoemType”的会话实体类型。 RecitePoem Intent被触发,并且一切正常。

但是,如果用户说:

告诉TestPoemApp朗诵我的自定义诗。(也称为UserPhrase2)

这是行不通的,因为自绕过欢迎意图以来,在加载会话实体类型之前就立即触发了RecitePoem意图。 有没有办法在第一个响应之前或期间加载会话实体类型?

注意1:我尝试过的一件事是在服务器端插槽填充中使用事件。因此,当用户说出UserPhrase2时,RecitePoem Intent看到缺少必需的PoemType参数,并使用webhookResponse.SessionEntityTypes进行响应,以定义会话实体类型,并引发一个事件,该事件基本上只是重新触发RecitePoem Intent。这不起作用,因为我相信webhookResponse.SessionEntityTypes直到事件链的末尾才被读取(即直到重新触发的RecitePoem调用响应后才会读取SessionEntityTypes)。我相信这是因为"When the followupEventInput parameter is set for a WebhookResponse, Dialogflow ignores the fulfillmentText, fulfillmentMessages, and payload fields."并没有特别提到SessionEntityTypes,但是我猜想它们也将被忽略。

[注2:我可以为实体打开“允许自动扩展”功能,并且可以解决此问题,但是我想避免这种情况,因为我相信实际的,定义的会话实体类型会更好。

google-cloud-platform dialogflow actions-on-google
1个回答
0
投票

我结束了直接向DialogFlow支持发送消息并收到响应,因此我想在这里分享它:

很遗憾,截至目前,Dialogflow不支持会话实体在AoG深度链接调用上键入。当前,会话实体加载对话开始后。

似乎不可能。

© www.soinside.com 2019 - 2024. All rights reserved.