【问题标题】:Having several GoogleResponses in a row without user input or interaction在没有用户输入或交互的情况下连续拥有多个 GoogleResponse
【发布时间】:2020-07-03 23:31:58
【问题描述】:

我正在为 google home 开发烹饪食谱应用程序,我需要一种将多个 GoogleResponse(SimpleResponse 等)串在一起而不需要用户交互的方法。

我已经搜索过与此相关的其他答案,虽然我发现了一些与我类似的问题,但这些回复往往类似于“系统是为对话而设计的,所以这有什么意义?”。

我完全理解这种观点,但是由于我正在开发的应用程序的性质和行为要求,我发现自己需要这种特殊的可能性。

食谱分为步骤(革命性的,我知道..),步骤和 GoogleResponses 之间大致存在 1 对 1 的对应关系。

举一个典型配方如何展开的例子,通常是这样的(当然这是一个简化):

main content -> question -> main content -> question -> etc..

每个“主要内容”实例都是配方的一个步骤,每个“问题”都需要用户输入。

如果一直都是这样,那么就不会有问题,我可以将每个“主要内容 -> 问题”部分捆绑到一个 GoogleResponse 中并完成。

但是,配方的流程通常更像:

main content -> main content -> main content -> question

由于每个“主要内容”都是配方中的一个步骤,因此在这种情况下将它们捆绑到同一个响应中是没有意义的(有一个系统供用户在步骤之间来回移动)。

我最初将 MediaResponses 用于“主要内容”部分,因为这些部分不需要用户输入即可进入下一步,但由于各种原因,我不会进入这里,因为这已经很长了,项目经理已决定不应在此项目中使用 MediaResponses。

【问题讨论】:

    标签: dialogflow-es actions-on-google google-assistant-sdk google-home


    【解决方案1】:

    简短的回答是您已经遇到过的问题 - 试图让对话动作不那么对话并不能很好地发挥作用。但是,您可以查看一些内容。

    配方结构化数据

    由于您正在处理配方操作,特别是,使用助手附带的标准 recipe 支持可能是值得的。

    从好的方面来说 - 人们会熟悉它,您无需编写太多代码,只需在网页上提供标记即可。

    不利的一面 - 如果您对交互方式有其他要求,那么它就不那么灵活了。 (例如,如果您在某些食谱点提出问题,或者如果您想根据服务人数提供测量调整。)

    滥用“无输入”事件

    您可以配置dynamic reprompts,这样如果用户几秒钟后没有说任何话,您就会收到一个事件。如果他们想加快回复速度,他们可以专门询问下一个上下文,或者您可以在 Dialogflow 中捕捉actions_intent_NO_INPUT 事件并自行推进。

    这里有一些缺点:

    • 并非所有设备都支持无输入。尤其是,例如,移动设备不会产生这种情况。
    • 这可能仅对连续的两个无输入事件有效。在第三个事件上,助手可能会自动关闭对话。 (文档对此并不清楚,确切的行为随着时间的推移发生了变化。)

    媒体反应

    你不清楚为什么使用Media Response“不应该使用”,但这是在讲话完成时触发事件的唯一方法之一。

    然而,有几个缺点:

    • 媒体响应在退出时存在许多错误
    • 在带屏幕的设备上,有一个媒体播放器。由于媒体本身与您正在做的事情无关,因此拥有播放器没有意义
    • 并非所有表面都支持它

    交互式画布

    不过,类似的方法是使用Interactive Canvas。这为您提供了一个带有您控制的 JavaScript 的 HTML 页面,包括能够生成对服务器的响应,就像用户说话一样(或者好像他们触摸了建议芯片)。您还可以在生成的语音完成时收听事件。

    但是,有一些缺点可能会阻止您现在使用它:

    • 最大的是交互式画布目前只能用于游戏。 (但这似乎是一项政策决定,而不是技术决定。因此,将来可能会取消。)
    • 它不适用于智能扬声器 - 仅适用于某些带屏幕的设备。

    结合上述方法

    解决交互式画布的设备限制和伴随媒体响应的糟糕视觉效果的一种方法可能是将两者混合使用。对于支持 IC 的设备,请使用它。如果没有,请尝试使用媒体响应。 (您甚至可能希望考虑某些平台的无输入提示。)

    但这仍然不适用于所有设备,并且仍然存在 Interactive Canvas 目前仅适用于游戏的限制。

    总结

    没有一种明确的方法来处理这个问题......鉴于平台的会话性质,这不是他们可能添加的功能。但是,可能有一些解决方法可能适用于您的方案。

    【讨论】:

    • 嗨,囚犯!感谢您的周到回复。对不起,我花了这么长时间才回复。我本来打算去的,然后被即将到来的世界末日之类的东西分散了注意力。
    • 没问题。如果答案有帮助,接受和/或支持它总是值得赞赏的。如果您需要进一步说明,请用您尝试过但不起作用的其他方法更新您的问题,然后发表评论提醒我们您已更新它会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2019-11-12
    相关资源
    最近更新 更多