更新失败 连接超时_Rasa根据会话session超时情况切分日志

f845dcfdd33fe2e1fd9cc919682fde32.png
写在前面:本文为个人实际项目开发过程中的趟坑记录,部分细节不方便说的太细,也肯定有很多错误之处,所提供的方案大概率也不是最优解,主要是提供几种思路,欢迎大家批评指正!

背景与目的

Rasa状态日志以sender_id为key存储

利用Rasa构建对话机器人时,若使用TrackerStore记录日志,则默认以senderid(sender,conversation_id,都一样)作为key进行存储,意味着对于用户sender_id=user1,无论何时与机器人对话,其对话记录永远会更新到以user1为key的字典中。

同一用户的状态日志越积越多

表面看起来没有问题,但存在隐含风险,因为Rasa Core的机制是,每次接收到用户message,会根据sender_id召回历史日志,解析历史状态,进而预测下一步该执行的Action。Rasa对历史日志默认使用InMemoryTrackerStore,保存在内存中,所以不太影响速度,但对于实际业务场景,Rasa的历史状态日志会记录到Redis、Mongo、ES等其他存储空间中,用户的历史状态日志会越来越大,召回日志会变得越来越困难,影响系统性能。

期望能按session切分日志

所以我们期望对日志进行分隔,很直观的思路就是按照用户回复是否超时进行会话session切分,每次只召回当前session的状态日志,进入到新session时丢弃上一session的所有状态。例如用户超过60分钟未回复,则下次再回复时,分配新的session_id,并以新session_id为key记录状态日志。

要点

  • 默认情况下,conversation_id就是sender_id。
  • 重启session不重启conversation。

思路与方案

方案一二三都失败了,仅作为

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值