有没有办法使用 API.AI 结束 Google Home 与服务器的对话?
我假设我需要以某种方式访问 expect_user_response 并将其设置为 false。
我还看到您可以使用动作 SDK 使用“assistant.tell()”,但这似乎无法通过 API.AI 访问。
有没有办法使用 API.AI 结束 Google Home 与服务器的对话?
我假设我需要以某种方式访问 expect_user_response 并将其设置为 false。
我还看到您可以使用动作 SDK 使用“assistant.tell()”,但这似乎无法通过 API.AI 访问。
对于不使用 SDK 的人。在使用 API.AI 时,我发现有两种方法可以停止 Google Home 上的麦克风。
在“意图”窗格中的履行下,您可以展开“Actions on Google”部分。在此之下,您将看到“结束对话”复选框。选中该框。
在您的履行中包括以下内容:
data: {
google: {
expect_user_response: false,
}
}
在您的回复中将其添加到与您的语音属性相同的级别。
是的你可以。在您的应用程序中,编写一个向您的代理发送查询“停止”的函数。
function stop_conversation(){ var api_request = new Request('https://api.api.ai/v1/query?v=20150910', {
method: 'POST',
mode: 'cors',
redirect: 'follow',
headers: {
'Authorization': 'Bearer 21f6a5778d484870ad46be4d34ac2eeb',
'content-Type': 'application/json; charset=utf-8'
},
body: JSON.stringify({
q: 'stop',
lang: 'en',
sessionId: '44628d21-d7a4-47d5-b1c6-a7f851be65fv'
})
});
}
如果您使用的是实现库,则调用Assist('stop');
.
...
在“意图”窗格中的履行下,您可以展开“Actions on Google”部分。在此之下,您将看到“结束对话”选中该框。
在您的履行中包括以下内容:
data: {
google: {
expect_user_response: false,
}
}
在您的回复中将其添加到与您的语音属性相同的级别。
对于使用 Node.js 客户端库的用户,这是通过tell()
函数以编程方式完成的(ActionsSdk客户端的文档,API.AI客户端的文档)。
即使文档只是说:
告诉助手呈现语音响应并关闭麦克风。
这确实有效地结束了与您的助手应用程序的通信,将用户返回到 Google 助手。
同样的事情可以通过在特定 Intent 中选中 API.AI Web GUI 中的“结束对话”框来完成(当然这不是动态的,每次调用 Intent 时都会结束对话):