【问题标题】:google action conversation exit: not waiting for user response谷歌操作对话退出:不等待用户响应
【发布时间】:2019-02-06 14:25:46
【问题描述】:

我正在尝试使用操作 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 秒,但它似乎会立即退出。有没有办法让这个工作?谢谢

【问题讨论】:

    标签: actions-on-google


    【解决方案1】:

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

    如果你想要达到的目标是这样的:

    用户:取消

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

    用户:很好。

    耳标

    那么,以我的拙见,你可能不应该(正如我所说的你可能不能)这样做。文档明确指出自定义退出行为的目的是:

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

    此外,文档并没有说系统将等待用户响应 2 秒。它说请求的执行(您的履行超时)是 2 秒。加;如果用户在对话中取消,则很可能交互还是不成功。我宁愿创建与回退意图和快乐路径相关的反馈对话轮次。

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

    【讨论】:

    • 感谢@Yuksel Tolun 的评论。您正确地确定了我想要实现的目标。是的,我误解了(误读)2 秒的解释。是的,当给出“再见”类型的响应时,我可以“询问”而不是“关闭”,但我想如果用户选择忽略,我需要执行一个光荣的退出(“关闭”)。让我弄清楚这个逻辑。谢谢。将您的答案投票为正确。
    • 很高兴我能帮上忙。
    猜你喜欢
    • 2018-12-15
    • 2019-07-29
    • 1970-01-01
    • 2013-02-12
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多