Q-Copilot简介
传统的QQ机器人可以说几乎对自然语言没有理解能力,只能通过固定指令的方式进行特定任务是执行。比如查询天气,你只能说"天气 深圳","01 深圳",等类似固定指令,不管是从开发角度还是用户角度都极其机械化。
而基于LLM+Tools实现的机器人不仅简化了开发流程,也提升了用户体验,用户可以通过日常交流的语言完成一些操作,效果可以类比小爱同学等AI助手。话不多说,先上效果图:
新增功能“邮件发送”:
LLM+Tools
LLM大家一定都了解了,所谓的Tools,就是赋予LLM一些工具,这个工具是我们自己写好的,LLM可以进行调用。举个简单的例子,前一段时间网上特别火的话题,大模型分不清13.8和13.11到底哪个大。因为大模型就是预测推理,它不会计算,那如果我们自己写一个很简单的函数Compare(double a,double b),然后通过类似Langchain等框架把这个工具告诉大模型,那你再问它的时候它就可以进行调用。
我们知道大模型是不具备联网能力的,虽然有时候我们在它们的官网进行聊天发现它好像可以联网(比如谷歌的Gemini),但是只是进行了集成,如果你直接调用Gemini api,你会发现其还是没有联网能力的。所以在我们自己创建的LLM应用中就需要Tools赋予其信息获取能力。
下面介绍一下Q-Copilot中已经实现的几个小工具:
天气获取,使用了高德api,其实这个工具有些多余,因为下面GoogleSearch工具也可以实现。
微博热搜获取
热映影片获取,这个其实GoogleSearch也可以实现。
谷歌搜索,王炸!
还有很多功能可以自己添加,很简单的代码能实现很强的功能,比如说邮件发送,直接告诉Q-Copilot,发邮件给A,内容……,就可以直接发送了(已经添加)。还有新邮件整理、提纲等等……
启动方式
NapCatQQ
(如果你没有搭建过qq机器人,可以看看,如果搭建过可以跳过了~)简单来说NapCatQQ就是一个“中转站,伪QQ”,其可以将别人发送给你qq的消息发送到你的服务端(就是你的后端机器人),也可以将服务端发送的消息(遵循特定协议和格式)进行处理后发送给其他人。
首先,不管你的系统是Linux或者Win,都需要确保你的电脑上有官方的QQ。然后去官网下载NapCatQQ,具体的安装方式官网很详细,这里就不说了,有问题可以直接留言。
启动之后先扫码登录,然后直接退出,这时候config文件夹里面就会生成配置文件,需要编辑的是onebot11_XXXXXX.json,就是你登陆的qq号。需要修改的是reverseWs(我们使用反向WebSocket方式),ip记得改成你稍后启动服务端的ip,如果是本地就127.0.0.1:8080。
"reverseWs": {
"enable": true,
"urls": [
"ws://192.168.XX.XX:8080/ws"
]
},
Redis
本项目依赖Redis进行历史记录缓存,需要启动redis,关于redis安装启动网上随便一搜就有很多教程,使用Linux会非常快,大概五分钟就可以搞定~
启动Q-Copilot服务端
开发基于Java17+SpringBoot3,从仓库拉取(项目地址:LiHao/Q-Copilot)。
需要申请高德开发api,Serper api(用于谷歌搜索),使用邮件发送需要去163邮箱设置里面开启IMAP/SMTP功能,然后会获得一个密钥,最重要的是OpenAI api,针对这个有国内转发接口(放在评论区了),亲测使用gpt-4o-mini,聊一天也就几毛钱。
申请完毕后,在项目根目录执行build.sh(windows 执行 build.bat),之后target中会出现.zip文件,解压后将申请的api密钥填充到application.yaml(记得去掉example)中。如果打包失败,执行java --version和mvn -v,务必确保都是java17。
之后执行run.sh(win执行bat)就可以了!
附录
Q-Copilot 项目地址Q-Copilot: Q-Copilot,基于SpringBoot+NapCatQQ+LLM+Tools构建的全新QQ AI机器人!
本项目基础框架参考haruhibot-server: java(springboot)基于gocqhttp,websocket反向实现的qq机器人