Dialogflow es DialogFlow在不等待语音命令的情况下保持会话打开

Dialogflow es DialogFlow在不等待语音命令的情况下保持会话打开,dialogflow-es,actions-on-google,google-home,Dialogflow Es,Actions On Google,Google Home,我正在开发一个Dialogflow项目,我需要一种方法来告诉或询问用户,而无需等待语音命令,但我还需要会话保持打开状态。 我不能使用tell,因为它基本上会立即终止会话。 Ask始终等待用户的语音命令。如果它无法获得任何语音命令,那么它只会结束对话 假设用户在该状态下有多个选项,用户可以随时说出一个可用命令,如next或previous,flow将继续工作 例如,我们得到想要的状态,然后: user: next google-home: got it! (Do not kill the sess

我正在开发一个Dialogflow项目,我需要一种方法来
告诉
询问
用户,而无需等待语音命令,但我还需要会话保持打开状态。 我不能使用
tell
,因为它基本上会立即终止会话。
Ask
始终等待用户的语音命令。如果它无法获得任何语音命令,那么它只会结束对话

假设用户在该状态下有多个选项,用户可以随时说出一个可用命令,如
next
previous
,flow将继续工作

例如,我们得到想要的状态,然后:

user: next
google-home: got it! (Do not kill the session here and do not expect user voice command)
after 10 minutes...
user: previous
google-home: got it! (Do not kill the session here and do not expect user voice command)
在DialogFlow中是否有任何构建方式可以实现这一点


谢谢。

不,这在目前是不可能的,一般来说,这是一个糟糕的设计目标。谷歌一般不想鼓励使用开放式话筒,因为这可能是一个隐私问题

您有几种解决方法:

  • 如果“Ok,Got it”确实是一个可接受的响应,那么您可以设置一个IFTTT触发器(或几个),该触发器将使用执行任何“next”或“previous”操作所需的参数来触发您的webhook。然后用户只需要说“嘿,谷歌,下一个”,你就会得到一个通用的回复,动作就会发生,麦克风就会关闭。这不涉及Dialogflow

  • 如果您需要一个更现实的回答,您可以创建一个包含额外短语的操作。所以,像“嘿,谷歌,让终极幻灯片进阶器转到下一张幻灯片”这样的东西会

    • 启动“终极幻灯片进阶器”操作,这样谷歌就会说“好的,获取终极幻灯片进阶器”

    • 激活与“转到下一张幻灯片”匹配的意图

    • 该意图将采取行动(进入下一张幻灯片)并做出相应的响应

    • 如果这听起来像是满嘴废话,您的用户可以为“下一张幻灯片”设置一个快捷方式“让终极幻灯片进阶器转到下一张幻灯片”。不过,助理仍将以整个例行程序作出回应


(有些情况下,开放式话筒是可以接受的,但这些情况应被视为退化情况,特别是因为它们很难与开放式话筒被滥用的情况区分开来。)

感谢您的澄清。我不是指保持话筒打开。我只想混合说和问的行为。我的想法是,向用户返回响应,关闭麦克风,但不要结束会话。例如,Alexa允许您使用
setNullableShouldEndSession
函数来完成此操作。然而,第二种方法在我们的案例中可能有效,但我认为如果您需要一些变量在会话中已经可用,那么它仍然可能会有问题。在这种情况下,您需要将这些变量存储在外部资源中。因此,希望Google跳过快捷方式中的“获取应用程序”行。。。这是一条有原因的捷径,不用告诉我你在找谁