我一直在使用 Api.AI 在 Google 上试用 Actions。我使用他们的 Github 示例编写了一个简单的 nodejs webhook:dialogflow-silly-name-maker-webhook-nodejs 。
问题是我不希望代理在完成请求后结束对话。我没有检查API.AI的 Intent 中的 END CONVERSATION 框。
我还有一个要求是如何记住在一个意图期间询问的参数,以便可以将相同的参数用于下一个意图。这可能吗?
我一直在使用 Api.AI 在 Google 上试用 Actions。我使用他们的 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 客户端库提供了一个“数据”字段来在用户会话期间存储值。例如,您的操作逻辑可以执行以下操作:
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.');