Dialogflow es 完成后对话结束?

Dialogflow es 完成后对话结束?,dialogflow-es,actions-on-google,google-home,Dialogflow Es,Actions On Google,Google Home,我一直在用Api.AI在谷歌上试用这些操作。我使用他们的Github示例编写了一个简单的nodejs webhook: 问题是我不希望代理在完成请求后结束对话。我没有选中API.AI上的意图中的结束对话框 我还有一个要求,就是如何记住在一个意图中询问的参数,以便在下一个意图中使用相同的参数。这可能吗?您可能正在使用assistant.tell()发送回复。无论api.ai中的设置是什么,这都将结束对话 改用assistant.ask()——这将保持对话的开放性 要在问题之间使用参数,您可能需要使

我一直在用Api.AI在谷歌上试用这些操作。我使用他们的Github示例编写了一个简单的nodejs webhook:

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


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

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

改用
assistant.ask()
——这将保持对话的开放性


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

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

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.');

我也做过同样的事情——使用API.AI“全局”上下文来存储杂项信息——但发现API.AI在每个上下文中添加了每个实体的2个副本,因此变得非常浪费。有没有办法抑制这种行为,或者您的SDK是否手动删除这些多余的属性?