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

项目背景

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

思路历程

历程一

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

历程二

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

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

历程三

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

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

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

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

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

总结

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

相关推荐
数据猎手小k2 分钟前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
sp_fyf_202423 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
知来者逆1 小时前
研究大语言模型在心理保健智能顾问的有效性和挑战
人工智能·神经网络·机器学习·语言模型·自然语言处理
老艾的AI世界2 小时前
新一代AI换脸更自然,DeepLiveCam下载介绍(可直播)
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·ai换脸·视频换脸·直播换脸·图片换脸
Yaml42 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
Chef_Chen3 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
小码编匠3 小时前
一款 C# 编写的神经网络计算图框架
后端·神经网络·c#