会话结束后会话结束了吗?

时间:2016-12-11 12:39:04

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

我一直在尝试使用Api.AI对Google进行操作。我使用他们的Github示例编写了一个简单的nodejs webhook:dialogflow-silly-name-maker-webhook-nodejs

事情是我不希望代理在完成请求后结束对话。我没有在 API.AI 上检查Intent中的END CONVERSATION框。

我还有一个要求是如何记住在一个意图期间询问的参数,以便同样可以用于下一个意图。这可能吗?

2 个答案:

答案 0 :(得分:4)

您可能正在使用assistant.tell()发送回复。无论api.ai中的设置如何,这都将结束对话。

使用assistant.ask()代替 - 这样可以保持对话畅通。

要在问题之间使用参数,您可能希望使用api.ai contexts

答案 1 :(得分:1)

Google客户端库上的操作提供了一个'数据'用于在用户会话期间存储值的字段。例如,您的操作逻辑可以执行:

assistant.data.answer = 10;

为了使这项工作,客户端库正在使用API​​.AI支持上下文,但'数据'现场是一个方便,所以你不必知道技术细节。在下一个对您的操作逻辑的传入请求期间,您可以使用相同的“数据”检索存储的会话值。字段:

let previousAnswer = assistant.data.answer;

如果您希望用户在对话过程中做出回应,请使用客户端库并询问'方法:

assistant.ask('Welcome to My Action! Say a number.');

如果您想结束对话,请使用客户端库'告诉'方法:

assistant.tell('Ok, see you next time.');