我一直在使用API.AI上尝试Google上的操作。我已经使用其github示例写了一个简单的nodejs webhook:对话flow-name-name-maker-webhook-nodejs。
问题是我不希望代理在履行请求后结束对话。我尚未在 api.ai 的意图中检查结束对话框。
我又有一个要求是我如何记住一个意图期间提出的参数,因此可以将同样的参数用于下一个意图。这是否可能?
您可能正在使用assistant.tell()
发送答复。无论API.AI中的设置如何,这都将结束对话。
而不是使用assistant.ask()
-这将保持对话的打开。
要在问题之间使用参数,您可能需要使用api.ai的上下文。
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.');