我需要维持一个DialogFlow会话24小时。因此,每当用户在任何聊天机器人流程之间的某个时间返回时,DialogFlow都会以正常流程开始,直到24小时。
正如我在评论中提到的,会话的DialogFlow配额是30分钟,但根据Lifespan文档,Context
只保留20分钟。
此外,所有上下文在激活20分钟后过期。
在Github
上有一个类似的线程,可以在这里找到。其中一条评论包含了DialogFlow Support Team的响应。
如果在一段时间不活动后开始测试代理,它可能需要几个请求来"唤醒"。为了确保代理始终处于唤醒状态,您可以向它发送预定的自动请求(模拟用户查询),例如,每隔10-20分钟发送一次。如果您在代理中启用了webhook,请确保这些请求击中您的web服务-这将确保您的web服务保持清醒。
在另一个堆栈问题中使用了类似的解决方案,可以在这里找到
我做到了,我将对话流响应上下文存储在db中,并在30分钟后将存储在db中的最后一个上下文发送给dialogflow detectinent。它工作得很好
还有一个关于扩展Dialogflow会话的指南-扩展Dialogflow中的上下文持续时间
我想提到的最后一件事,有一个长时间会话的功能,但它是针对DialogFlow CX
而不是DialogFlow ES
的。