完成后对话结束?

Conversation ends after fulfillment?

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

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

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

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

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

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

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

assistant.data.answer = 10;

为了完成这项工作,客户端库正在使用 API.AI 对上下文的支持,但是 'data' 字段很方便,因此您不必了解技术细节。在对您的操作逻辑的下一个传入请求期间,您可以使用相同的 'data' 字段检索存储的会话值:

let previousAnswer = assistant.data.answer;

如果您希望用户在对话期间做出响应,请使用客户端库 'ask' 方法:

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

如果你想结束对话,使用客户端库'tell'方法:

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