为什么不支持的错误响应在不同的QUERY intent场景中处理不同?

时间:2017-11-15 15:56:31

标签: actions-on-google google-home

此问题是由我们之前关于QUERY意图审核要求的问题提示的,here

虽然我们目前无法实现查询许多设备的详细状态,但我们希望对QUERY意图的尝试做出正确回应。具体来说:使用 notSupported 错误响应似乎是合适的。对于一般用户查询,例如“桌面是否亮起?”,这可以正常运行:

“桌面灯无法使用该模式”。

但是,在尝试相对操作时,例如“Dim the Desk light。”,相同的响应格式会导致Google Home的以下响应:

“桌面灯遇到未知错误。”

在两种情况下都会返回相同的json响应:

{ 

"requestId": "****************", 

"payload": { 

    "devices": { 
        "********": { 
            "errorCode": "notSupported" 
            } 
        } 
    } 
}

我们通过伪造具有实际亮度状态的查询响应来验证QUERY返回后意图是否正确继续;接下来接收EXECUTE意图以实现亮度变化。

我们不确定为什么在这种情况下处理 notSupported 错误的方式不同;我们是否可能误解了如何对这种QUERY的错误响应进行格式化?如果是这样,我们如何区分一个QUERY意图后面的QUERY意图和一个单独的QUERY意图?也许还有其他一些我们错过的东西?

感谢您的阅读。

2 个答案:

答案 0 :(得分:0)

在提供相对命令时,例如“调暗台灯”,Google智能助理首先需要知道当前的亮度。要执行此操作,助手需要首先查询您的服务器或使用REPORT_STATE将数据直接存储在HomeGraph中。

回复是故意的。如果我询问指示灯是否亮起,则设备无法响应该类型的查询。

如果我想改变亮度,那就是灯光可以支持的模式。否则说不正确。但是,执行流程失败,因为它无法检索您当前的亮度。不知道它现在是什么,它不能相对改变亮度并返回错误。

说“将我的光线设置为10%”这是一个绝对的变化。

答案 1 :(得分:0)

刚刚接下来 - 我得到了查询中的逻辑 - 但查询本身完全是普通的 - 我们怎么知道它是一个需要返回的查询: "亮度":65

而不是 - " on":true