点击空白处退出提示
作品详情
2.做的功能较多,下面只介绍其中两个:词条批量替换、机器人对话标签功能。
词条批量替换是将知识库中的问题、答案、相似问法进行批量的替换,在前端选中faq后,填写完成需要替换的文本和替换之后的文本会调后端的接口,接口创建一个定时任务存在MySQL数据库中。在批处理的代码中,会定时(使用@Scheduled注解)的查询该表,查询出对应的任务状态,进行处理。处理的进度会存在数据库表中。前端会调用另一个查询进度的接口,后端只需要读取该表进行进度的计算即可。起初是使用多线程处理替换+Redis记录成功失败记录的方式,但是考虑到数据量庞大情况,会导致性能方面出现问题,引起报警,所以采用了异步定时任务的方式。
机器人对话标签功能是用户在后台管理页面中配置触发器,在用户对话满足该触发器的时候会给该会话打上对应标签。实现方式如下:在配置也主要就是增删改,对对话标签的基本操作。触发器以json的形式存在MySQL中。在对话chat接口中,每次对话是,需要查询对话标签表中的数据,根据开关字段过滤,并且进行逻辑判断,看是否满足触发器,满足则会在会话对象session的其中一个字段中加上触发的该消息标签的id,用于对话记录展示和筛选。针对对话记录,也是一种批处理的任务类型,通过定时任务,将MySQL中的session表数据,读取出来,存到es中,其中也包括对话标签的id,在对话记录筛选中,增加一个筛选器,查询对话标签列表,用选择的对话标签id作为参数,根据对话记录的对应属性进行查询,并将es中的数据返回。达到效果。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论