首页 > 解决方案 > 并行执行 AoG 意图

问题描述

我有两个意图。当我调用第一个时,它会“无休止地”播放音频。第二个意图可用于对播放进行投票,即如果用户喜欢它,则喜欢它,如果使用过,则不喜欢它。我的问题是我能否以并行运行或更明确的方式调用这两种意图。第一个 Intent 继续运行,而第二个 Intent 记录用户投票。

app.intent('playAudio.intent',(conv)=>{
    // Play audio
});

app.intent('voteAudio.intent',(conv,{vote}{
    // Vote audio playing
});

标签: node.jswebhooksdialogflow-esactions-on-google

解决方案


我认为你正在处理这个问题。请记住,意图不是“执行”的。意图捕捉用户所说的内容。他们没有描述您的行动如何回应他们所说的话。

因此,您可能有一个触发音频播放的 Intent(在无限循环中?)。

您可能还希望用户能够中断播放以指示他们如何对该音频进行投票。在任何播放过程中(语音、使用 SSML 的音频效果或媒体响应),用户可以通过以“Hey Google”开头,然后是他们要说的内容来打断您所说的内容。这将像所有其他 Intent 一样传递给 Dialogflow 进行处理。

就像任何其他 Intent 一样,您的回复也需要发送给用户。虽然您可以在回复中重新开始播放音频,但之前的音频播放已结束。不幸的是,没有可靠的方法可以知道它在哪一点被中断或告诉它在音频的稍后点开始。

如果您询问音频是否可以在“背景”中播放,答案是否定的。Actions on Google 旨在支持对话式 UI,它在系统和用户之间来回切换。


推荐阅读