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机器人
总结
### Q-Copilot简介总结**Q-Copilot** 是一款结合了LLM(大语言模型)和定制工具(Tools)的全新QQ机器人,彻底颠覆了传统QQ机器人的体验。传统QQ机器人仅能通过固定指令执行任务,而Q-Copilot允许用户通过日常对话语言完成操作,类似小爱同学等AI助手,大大简化了开发流程并提升了用户交互的自然度。
#### 核心功能与技术亮点
- **自然语言理解能力**:借助LLM技术,Q-Copilot能够更好地理解用户的自然语言指令,实现更智能的对话互动。
- **定制化工具调用**:通过Tools的引入,为大模型赋予信息获取和任务执行能力。例如,利用高德API查询天气、获取微博热搜和热映影片,甚至通过谷歌搜索获取广泛信息。
- **邮件发送等新功能**:用户可以通过简单对话指令,实现邮件的自动化发送和整理,极大提升了机器人的功能多样性和实用性。
#### 启动与使用
- **环境搭建**:需要安装官方QQ、NapCatQQ作为“中转站”、Redis进行历史记录缓存,并确保Java17和SpringBoot3的开发环境。
- **API申请**:需申请高德API、谷歌搜索API、邮箱SMTP服务及OpenAI等其他相关服务的API密钥。
- **项目搭建与部署**:从仓库拉取Q-Copilot项目,完成API密钥的配置,并执行构建和运行脚本来启动服务端。
#### 附录与资源
- **项目地址**:Q-Copilot项目基于SpringBoot+NapCatQQ+LLM+Tools构建,提供全新QQ AI机器人体验。
- **框架参考**:项目基础框架参考haruhibot-server,是一个基于gocqhttp和websocket反向实现的Java SpringBoot QQ机器人项目。
### 结语
Q-Copilot通过结合先进的LLM技术和定制化工具,为QQ用户带来了前所未有的智能交互体验。无论是查询信息、发送邮件还是其他复杂任务,都可以通过自然对话轻松完成,是未来AI机器人发展的一个重要方向。