有没有办法使用API.AI结束Google Home与服务器的对话?
我假设我需要以某种方式访问expect_user_response并将其设置为false。
我也看到动作SDK你可以使用'assistant.tell()',但API.AI似乎无法访问。
答案 0 :(得分:5)
对于未使用SDK的用户。我发现有两种方法可以在使用API.AI时停止在Google Home上使用麦克风。
在"意图"窗格,在实现之后,Google上有一个"操作"您可以展开的部分。在那之下你会看到"结束对话"复选框。检查那个方框。
在您的履行中包括以下内容:
data: {
google: {
expect_user_response: false,
}
}
在与您的回复中的语音属性相同的级别添加此内容。
答案 1 :(得分:3)
是的,你可以。在您的应用程序中,编写一个发送查询的函数" stop"给你的经纪人。
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'
})
});
}
如果您正在使用the fulfillment library,请调用Assist('stop');
。
...
在"意图"窗格,在实现之后,Google上有一个"操作"您可以展开的部分。在此之下,you will see"结束对话"检查那个方框。
在您的履行中包括以下内容:
data: {
google: {
expect_user_response: false,
}
}
在与您的回复中的语音属性相同的级别添加此内容。
答案 2 :(得分:1)
对于那些使用Node.js客户端库的人来说,这是通过tell()
函数(docs for ActionsSdk客户端,docs for API.AI客户端)以编程方式完成的。
即使文档只是说:
告诉助手呈现语音响应并关闭麦克风。
这确实可以有效地终止与您的智能助理应用的通信,并将用户返回给Google智能助理。
同样的事情可以通过检查特定Intent中的API.AI Web GUI中的“End Conversation”框来实现(当然,这不是动态的,并且每次调用Intent时都会结束对话):