本地大模型接入QQ官方机器人
[OLLAMA+LangBot]云服务器+本地大模型接入 QQ 官方机器人
写在前面
最近 deepseek 开源了 r1,部署 14b 到本地使用感觉效果不错,相比 qwen 会更聪明一些。为了方便在外使用,手机端用网页感觉有点不得劲儿,干脆直接接入到 QQ 官方机器人,直接私聊或者群聊@就能使用。
沟槽的南极减除,试了很多次始终会报错“平台适配器运行出错: 接口访问源IP不在白名单”,搜了一下才发现必须要公网IP,淦!还好有一台服务器有公网IP。
服务器
搜了一下 go-cqhttp 之类的协议,要么仓库不再维护要么就是账号容易风控,不想在这上面多折腾,所以直接用官方机器人再加 LangBot。
部署 LangBot
- 克隆最新代码
1
2git clone https://github.com/RockChinQ/LangBot
cd LangBot - 安装依赖
1
pip install -r requirements.txt
- 运行一次主程序,生成配置文件,然后再
ctrl+c
停止程序。1
python main.py
链接消息平台
先去QQ机器人官方注册账号,在开发管理中找到AppID
和AppSecret
。
转到config
目录
1 | cd LangBot/data/config/ |
在platform-adapters
中找到qq-botpy
,将enable
设置为true
,填好自己的appid
和secret
,我没有设置频道,所以intents
只设置了public_messages
和direct_message
。
设置对话模型
打开provider.json
,我这里是本地模型,修改 model
为
1 | "model": "deepseek-r1:14b", |
然后退出编辑,回到上一级目录修改llm-models.json
添加本地模型
1 | cd ../metadata/ |
直接在list
的第一位添加
1 | { |
设置管理员
1 | cd ../config/ |
修改下面的admin-sessions
,把QQ会话设置为管理员(仅 person 会话私聊有效)。
1 | "admin-sessions": [ |
完成
最后回到LangBot
根目录运行就可以了
1 | python3 main.py |
其它的json
根据自己的需求更改就行了。
服务器断联bug
大概每隔20分钟左右就会断联,不知道什么原因,懒得排查了,直接写了个重启脚本,每隔20分钟自动重启一次,不用管那个python
,直接运行这个脚本就行了。
1 | while true; do |
对了,记得修改云服务器安全组规则,放行ollama
的11434
端口。
ollama 开放局域网
Ollama 是一个流行的本地 AI 服务工具,但默认情况下它只能在本地访问。直接设置 Ollama 的环境变量 OLLAMA_HOST,使其监听局域网的 IP 地址。
新建系统环境变量:
- 在
系统变量
部分,点击新建
。 - 在
变量名
输入框中,输入OLLAMA_HOST
。 - 在
变量值
输入框中,输入0.0.0.0
,然后点击确定
。
完成后,Ollama 服务将在所有网络接口上监听,包括局域网。
然后再CMD
进行端口转发,就可以在QQ
上使用大模型了。
1 | ssh -N -R 11434:192.168.5.4:11434 root@服务器公网IP |