保存的对话在 Dialogflow 中如何运作?
How does saved conversation works in Dialogflow?
我正在尝试了解 conv.data
和 conv.user.storage
的工作原理。
据我所知,conv.data
用于临时存储,conv.user.storage
用于对话之间的更长时间。当我在本地测试时,我注意到 conv.data
并没有真正保存到下一个回合,而是只保存了同一回合。那么它与上下文相关吗?
另一方面,用户存储非常简单,您保存数据并将其保存在用户中,它限制为 10 000 字节,仅此而已。
但是我不明白的是这部分:
当智能助理无法将身份与用户匹配时,用户存储的内容会在对话结束时被清除。智能助理无法将身份与用户匹配的情况示例如下:
设置了语音匹配,但没有匹配。
用户禁用了个人数据。
这是否意味着如果用户现在正在使用该应用程序,然后同一对话中的其他人加入测试它,它会清除数据吗?
TLDR
- 上下文是否与 conv.data
相关,当上下文过期时 conv.data
被删除?
- 当其他用户尝试使用您的帐户交谈时,您的应用数据是否会被删除?
你说的大部分都是正确的。让我们看看你说的或问的一些事情。
为什么 conv.data
不为下一回合保存?
这取决于你所说的 "turn" 是什么意思。 conv.data
在单次对话中保存 - 从调用您的操作到您的操作 "closes the microphone" 与 conv.close()
或等效操作。 AoG 将此作为一致的对话模型维护。
(当您使用媒体响应并播放很长的音频文件时会出现一些错误。但这些都是例外。)
conv.data
是使用 Dialogflow 上下文实现的吗?
如果您将 AoG 与 Dialogflow 结合使用 - 是。
您可以将 conv.data
与 Action SDK 一起使用,它不使用 Dialogflow 上下文。
但是当上下文结束时它不会过期吗?
是也不是。 conv.data
的上下文被创建为一个持久的上下文(生命周期为 99),因此在上下文过期之前还有一段时间。该库还每回合刷新上下文,因此它将生命周期保持在 99 并重置上下文的 20 分钟计时器。
对于 conv.user.storage
,如果用户现在正在使用该应用程序,然后同一对话中的其他人加入测试它,它会清除数据吗?
没有。当用户说出热词 - "OK Google" 或 "Hey Google" 时,将确定用户身份。之后,多个用户可以在对话中发言,设备将其视为同一个帐户。
Google 助理不会尝试弄清楚对话中谁在说什么 - 只是最初。
因此,如果它在对话开始时识别用户,就会使用他们的 storage
对象。如果没有,它会创建一个新的 storage
对象,在对话结束时(当它在 conv.close()
之后关闭麦克风时)处理该对象。
我正在尝试了解 conv.data
和 conv.user.storage
的工作原理。
据我所知,conv.data
用于临时存储,conv.user.storage
用于对话之间的更长时间。当我在本地测试时,我注意到 conv.data
并没有真正保存到下一个回合,而是只保存了同一回合。那么它与上下文相关吗?
另一方面,用户存储非常简单,您保存数据并将其保存在用户中,它限制为 10 000 字节,仅此而已。
但是我不明白的是这部分:
当智能助理无法将身份与用户匹配时,用户存储的内容会在对话结束时被清除。智能助理无法将身份与用户匹配的情况示例如下:
设置了语音匹配,但没有匹配。
用户禁用了个人数据。
这是否意味着如果用户现在正在使用该应用程序,然后同一对话中的其他人加入测试它,它会清除数据吗?
TLDR
- 上下文是否与 conv.data
相关,当上下文过期时 conv.data
被删除?
- 当其他用户尝试使用您的帐户交谈时,您的应用数据是否会被删除?
你说的大部分都是正确的。让我们看看你说的或问的一些事情。
为什么 conv.data
不为下一回合保存?
这取决于你所说的 "turn" 是什么意思。 conv.data
在单次对话中保存 - 从调用您的操作到您的操作 "closes the microphone" 与 conv.close()
或等效操作。 AoG 将此作为一致的对话模型维护。
(当您使用媒体响应并播放很长的音频文件时会出现一些错误。但这些都是例外。)
conv.data
是使用 Dialogflow 上下文实现的吗?
如果您将 AoG 与 Dialogflow 结合使用 - 是。
您可以将 conv.data
与 Action SDK 一起使用,它不使用 Dialogflow 上下文。
但是当上下文结束时它不会过期吗?
是也不是。 conv.data
的上下文被创建为一个持久的上下文(生命周期为 99),因此在上下文过期之前还有一段时间。该库还每回合刷新上下文,因此它将生命周期保持在 99 并重置上下文的 20 分钟计时器。
对于 conv.user.storage
,如果用户现在正在使用该应用程序,然后同一对话中的其他人加入测试它,它会清除数据吗?
没有。当用户说出热词 - "OK Google" 或 "Hey Google" 时,将确定用户身份。之后,多个用户可以在对话中发言,设备将其视为同一个帐户。
Google 助理不会尝试弄清楚对话中谁在说什么 - 只是最初。
因此,如果它在对话开始时识别用户,就会使用他们的 storage
对象。如果没有,它会创建一个新的 storage
对象,在对话结束时(当它在 conv.close()
之后关闭麦克风时)处理该对象。