如何结束与API.AI的对话

时间:2016-12-22 02:10:04

标签: dialogflow actions-on-google google-home

有没有办法使用API​​.AI结束Google Home与服务器的对话?

我假设我需要以某种方式访问​​expect_user_response并将其设置为false。

我也看到动作SDK你可以使用'assistant.tell()',但API.AI似乎无法访问。

3 个答案:

答案 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时都会结束对话): enter image description here