3

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

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

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

4

2 回答 2

4

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

改为使用assistant.ask()- 这将使对话保持开放。

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

于 2016-12-11T17:02:57.123 回答
1

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

assistant.data.answer = 10;

为了实现这一点,客户端库使用 API.AI 对上下文的支持,但“数据”字段很方便,因此您无需了解技术细节。在对您的操作逻辑的下一个传入请求期间,您可以使用相同的“数据”字段检索存储的会话值:

let previousAnswer = assistant.data.answer;

如果您希望用户在对话期间做出响应,请使用客户端库的“询问”方法:

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

如果要结束对话,请使用客户端库的“tell”方法:

assistant.tell('Ok, see you next time.');
于 2016-12-11T18:32:02.613 回答