从困境到突破:政府项目机器人数据查询的探索之旅

项目背景

最近,老板让我做个机器人儿,让这个机器人可以根据用户问的问题回答相关业务领域的数据。业务数据现在都在不同的库不同的表里。

思路历程

历程一

把全部的业务数据弄到一张表里面,'%like%'不就完事了。如果用户问"差旅住宿费标准"这种关键字类型的like可以查到,但如果用户问的"工作人员差旅住宿费标准"这种一段话类型的,那like不就g了,啥都查不到。

历程二

后来想这个机器人不就那么像现在的GPT,那我把全部的业务数据都整理出来全部交给模型不就行了,但因为是政府项目数据都需要保密,不能使用远程三方算力,不然会有数据泄露的风险;不能用现成的,大不了我就自己本地搭一个呗,这两年ai爆炸,网上各种各样的大语言模型都有,一顿操作按了许多,最终找到一个很不错的一只羊驼Ollama,github上start量高达75.7k。

具体安装使用流程我后面文章再介绍,用这只小羊驼回答效果是挺好的,就是电脑配置不行的话回答速度实在太慢。而且政府给的服务器连显卡都没有,只有cpu运算,随便来几个人同时问那服务器不就g了。

历程三

ElasticSearch,ES本就是为搜索而生的,把业务数据都同步到ES,ES通过ik分词器把用户的问题分成多个词语找到匹配度最高的数据

这样在某些条件下是可以满足要求的,但如果某条数据中'工作人员'这个关键字出现了多次,那es给他的评分就会非常高,从而给我们这条毫不相关的数据,所以我们还需要提高我们查询的精确度。

业务数据是从不同系统中整合过来的,如果能首先确定用户需要的是哪个系统的数据,那精确度就会高很多了,比如用户问"工作人员差旅住宿费标准",肯定是需要去[差旅住宿费系统]里面查的,如果问"XXX的车牌号是多少",那就需要到[车辆管理系统]里面查;所以我们可以根据每个系统创建一个他们专属的字典,当用户的问题中出现字典中的词语,我们就去对应的系统里面查询,这样精确度就会高很多了。

但是ik分词器并没有提供词语是在哪个字典中搜索出来的,所以这里我们需要在程序中把问题分词,并知道每个词语在哪个字典中,添加搜索条件。这里我们可以使用大佬们开源的分词工具HanLP

把我们的相应业务字典加进去,分析出词语所在的字典,再去ES搜索就ok啦。

总结

大语言模型的回答极其智能,只是对配置的要求过高,对于预算有限的公司不太适用,而且目前的模型还需要更多的训练,也不太符合政府项目的要求。倘若有用户引导其回答了过激言论或不符合当前政治的话语,那后果将不堪设想。

相关推荐
颜酱1 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
小码哥_常2 小时前
Java后端定时任务抉择:@Scheduled、Quartz、XXL - Job终极对决
后端
uzong2 小时前
Skill 被广泛应用,到底什么是 Skill,今天详细介绍一下
人工智能·后端·面试
小码哥_常3 小时前
Kafka平替!SpringBoot+Redis Stream+消费组打造极致消息队列
后端
IT_陈寒4 小时前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
vx_biyesheji00014 小时前
Python 全国城市租房洞察系统 Django框架 Requests爬虫 可视化 房子 房源 大数据 大模型 计算机毕业设计源码(建议收藏)✅
爬虫·python·机器学习·django·flask·课程设计·旅游
湘美书院--湘美谈教育5 小时前
湘美谈教育湘美书院网文研究:人工智能与微型小说选集
人工智能·深度学习·神经网络·机器学习·ai写作
uzong5 小时前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
唐叔在学习5 小时前
Python桌面端应用最小化托盘开发实践
后端·python·程序员
yuhaiqiang6 小时前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试