2

我创建了一个名为#USER-NAME 的实体并将其设置为要求。现在,第一次在对话中检测到实体时 - 比如说“我是约翰”,然后将内存设置为约翰。在随后遇到具有不同价值的同一实体-“我是戴夫”时,记忆保持不变。

我见过编辑内存选项,它提供 1. 重置内存 2. 设置为一个值。对于选项 2,它不提供设置为 #USER-NAME 值的方法,而仅提供输入静态值的选项。

每次实体的值发生变化时如何更新内存?

编辑

嗨,我附上了一些屏幕截图,以显示到底出了什么问题。

  1. 我有一个名为“#USER_NAME”的实体,它将用户名保存在内存变量中。

  2. 我进行以下对话 - 对话

  3. 对话后的 JSON 负载如下。这完美地工作- 响应1

  4. 我通过提供新用户名再次更新对话。 对话 2

  5. 这很好地触发了实体。您可以看到被正确检测到的实体。

实体

  1. 但是,内存值保持不变。 记忆

我想要的是用“John”替换“Dev”的内存变量。

4

2 回答 2

1

内存是一个持久对象,因此如果要重置它,您需要在构建器中具有特定条件或通过 webhook 获得后端代码来恢复内存。

于 2019-01-23T14:28:04.893 回答
1

请记住:

记忆<>意图

您可以在消息部分中设置内存或自动更新,例如在这种情况下,每次触发技能时都会使用要求,它将替换内存 ID 中的值

编辑:因为设置的内存字段需要一个 JSON,所以您不能随意使用内存,但是如果您在聊天中相关的地方重置该内存 ID(在我的示例中,我在说 Hi XXX 后立即将其删除)所以当技能是再次触发它将用新值“替换”它

在 Requirement 中,我将黄金实体#Person 设置为变量“name”,如果缺少,我问她的名字。

示例图像

于 2019-01-23T22:46:16.037 回答