google action对话退出:不等待用户回复

时间:2019-02-06 14:25:47

标签: actions-on-google

我正在尝试使用操作sdk在google操作会话结束时寻求用户反馈。

根据Actions文档(https://developers.google.com/actions/assistant/conversation-exits),我已经设置了取消意图

   "conversations" : {
    ...
    "inDialogIntents": [
        {
          "name": "actions.intent.CANCEL"
        },
     ... 

在我的函数代码中,我正在调用SimpleResponse,如下所示:

app.intent('actions.intent.CANCEL', (conv, input) => {
  conv.close(new SimpleResponse({
    speech: 'Kindly rate between 1 and 5,
    text: 'Rate between 1 and 5'
  }));
});

当用户说goodbye时,上述代码被调用。会听到语音并显示文本,但是对话会立即随着耳塞退出。

文档中提到系统将在退出前等待2秒钟,但似乎立即这样做。有没有办法让这个工作?谢谢

1 个答案:

答案 0 :(得分:0)

我不清楚您想要实现什么。首先,只要您使用conv.close()方法,就将结束对话。如果要保持麦克风打开,则需要使用conv.ask()方法。但是我不确定ID是否可以将conv.ask()与actions.intent.CANCEL一起使用,因为在那里发生该事件是为了让用户离开,而不是继续进行对话。但是我不确定%100,您需要尝试一下。

如果您要实现的目标是这样的:

  

用户:取消

     

系统:您如何评价我们的互动?

     

用户:好。

     

耳机

然后,以我的拙见,您可能不应该(而且正如我所说的那样)。文档明确指出自定义退出行为的目的是:

  

清理您的履行逻辑并最后一次回应用户。

此外,文档并没有说系统将等待用户响应2秒钟。它说请求的执行(您完成请求的超时)为2秒。加;如果用户正在取消会话中的对话,则很有可能是该交互未成功。我宁愿创建与回退意图和满意路径相关的反馈对话框转弯。

不过,请尝试改用conv.ask(),让我知道是否可行。 (请通过评论让我知道。)无论哪种情况,我都会考虑以其他方式获得反馈。