GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记
GLM qq群服务器的本地化部署笔记
- 一. 概述
- 1.1 整体结构
- 1.2 目标
- 1.3 需求
- 1.4 流程说明
- 二. 部署流程
- 2.1 使用GPT转发程序帮助文档
- 2.1.1 使用git安装GLM
- 2.1.2 不使用git安装GLM
- 2.2 使用Anaconda Navigator 虚拟运行GLM
- 2.2.1 [https://www.anaconda.com/](https://www.anaconda.com/)上下载Anaconda
- 2.2.2 安装的时候最好不要安在c盘 同时注意
- 2.2.3 找到安装好的anaconda 运行anaconda Navigator
- 2.2.4 启动anconda的终端
- 2.2.5 anconda环境依赖安装
- 2.2.6 启动躺雷
- 2.2.7 处理同样的报错
- 2.2.8 虚拟环境中下载pytorch
- 2.2.9 成功运行GLM
- 三. GPT转发程序接入 GLM
- 3.1 下载接入程序
- 3.2 参考接入程序教程修改配置文件
- 3.2.1 修改接入
- 3.2.2 修改对接go-cqhttp
- 四. go-cqhttp对接和使用
- 4.1 下载 go-cqhttp
- 4.2 初始化 go-cqhttp
- 4.3 设置 go-cqhttp
- 4.4 启动 go-cqhttp,生成配置文件
- 4.5 打开 device.json,修改协议
- 4.6 启动 go-cqhttp,扫码并登录
- 五. 最后按顺序启动
- 5.1 anaconda状态下的GLM api.py → go-cqhttp →GPT转发程序
- 5.1.1 qq成功页面
- 5.1.2 GPT转发程序成功页面
- 5.1.3 go-cqhttp成功页面
- 5.1.4 GLM成功页面
一. 概述
1.1 整体结构
GLM-6B模型服务器↓ 8000端口chatgpt-mirai-qq-bot↓ 接收转发 添加头信息go-cqhttp qq群机器人
- 以下chatgpt-mirai-qq-bot简称GPT转发程序
1.2 目标
实现本地化部署的GLM q群机器人
1.3 需求
- 最好16GB的显存 显卡性能要求不高
- window环境
1.4 流程说明
该项目的是利用lss233大佬的项目一头对接GLM模型将其消息处理成go-cqhttp可以处理的形式最后发送到qq群内
lss233大佬的项目地址
https://github.com/lss233/chatgpt-mirai-qq-bot
二. 部署流程
看的出流程的核心是GPT转发程序
2.1 使用GPT转发程序帮助文档
2.1.1 使用git安装GLM
首先我们跟着GPT转发程序的文档一步一步来
文档地址
https://chatgpt-qq.lss233.com/pei-zhi-wen-jian-jiao-cheng/jie-ru-ai-ping-tai/jie-ru-chatglm
# 下载项目
git clone https://github.com/THUDM/ChatGLM-6B.git
cd ChatGLM-6B
# 安装依赖
pip install -r requirements.txt
pip install fastapi uvicorn
# 启动
python api.py
- 所以这里我们需要安装git和python没啥好说的
python最好使用3.10.10 git直接next next安装就完事了
2.1.2 不使用git安装GLM
这里安装Chat的时候你可以不使用git来进行安装
因为这里面的模型文件特别大 容易下不下来 不会科学的下的很慢
如果出现这种情况 删掉下载的项目
https://www.bilibili.com/video/BV1gX4y1C7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=ac6f57cbd263a9d994cdb0bece060fc9
跟着这个视频前面做
这里如果我们跟着帮助文档的走python api.py它就会报错
E:\AI\GLM6b\ChatGLM-6B>Python api.py
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a configuration with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Symbol cudaLaunchKernel not found in C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common\cudart64_65.dll
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 8/8 [00:07<00:00, 1.01it/s]
Traceback (most recent call last):File "E:\AI\GLM6b\ChatGLM-6B\api.py", line 54, in <module>model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 905, in cudareturn self._apply(lambda t: t.cuda(device))File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 797, in _applymodule._apply(fn)File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 797, in _applymodule._apply(fn)File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 820, in _applyparam_applied = fn(param)File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 905, in <lambda>return self._apply(lambda t: t.cuda(device))File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\cuda\__init__.py", line 239, in _lazy_initraise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
这一坨的报错一共两个意思
- 装cuda
- 装torch
所以这里我们因该是去装这两玩意 但是我装了半天没装好
步骤因该是 先装cuda 再装 torch 但是这个torch在windows上对cuda的版本要求严格 所以如果你要正常装 我建议你先看torch的版本然后找到对应的cuda版本进行安装
我这里跳到另外一个up的Anaconda Navigator视频
https://www.bilibili.com/video/BV1gX4y1C7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=ac6f57cbd263a9d994cdb0bece060fc9
当时都没想着能用但是这个Anaconda Navigator模拟了一个python环境3.10.10的环境结果就能用了
2.2 使用Anaconda Navigator 虚拟运行GLM
感谢这个BillBum up做了排除问题的视频 不然我还不知道咋搞
实在不知道怎么弄的跟视频
2.2.1 https://www.anaconda.com/上下载Anaconda
2.2.2 安装的时候最好不要安在c盘 同时注意
修改环境文件路径
2.2.3 找到安装好的anaconda 运行anaconda Navigator
2.2.4 启动anconda的终端
2.2.5 anconda环境依赖安装
cd到我们刚才操作的代码的目录
依赖不放心就再安装一次
2.2.6 启动躺雷
- up主的视频是想使用web网站 但我们是要用api接口 但是可以用它的文件来下载相关的依赖 其实是当时想跟着做出来
2.2.7 处理同样的报错
- 输入启动命令 出现同样的报错
2.2.8 虚拟环境中下载pytorch
- 这里如果没有就重新启动anaconda一次再进来
- 再次启动调试
- 尝试启动发现差依赖 差什么装什么
- 差什么装什么
- 能启动他的web当然好 同时我们也要尝试我们的 python api.py
2.2.9 成功运行GLM
- 可以看到它端口开在8000
三. GPT转发程序接入 GLM
3.1 下载接入程序
git上下载lss233大佬的转接程序
https://github.com/lss233/chatgpt-mirai-qq-bot
3.2 参考接入程序教程修改配置文件
3.2.1 修改接入
3.2.2 修改对接go-cqhttp
四. go-cqhttp对接和使用
go-cq也是一个很有名的项目了
项目地址https://github.com/Mrs4s/go-cqhttp
找一个喜欢的版本安装 我用的这个
4.1 下载 go-cqhttp
你可以在这里下载最新的 go-cqhttp:https://github.com/Mrs4s/go-cqhttp/releases
4.2 初始化 go-cqhttp
解压并启动 go-cqhttp,选 3 后回车,退出程序。
4.3 设置 go-cqhttp
编辑 go-cqhttp 的 config.yaml,设置机器人的 QQ 号和反向 Universal 地址 (这个反向 Universal 地址和前面的 reverse_ws_host 、reverse_ws_port )有关
这里的 universal 地址的写法如下:
- 如果你的 go-cqhttp 和 chatgpt 在同一台机器上,那么就写: ws://localhost:8566/ws ,这里的 8566 和 reverse_ws_port的值是一样的。
- 如果你的 go-cqhttp 和 chatgpt 在不同的机器上,那么就在上面的基础上,把 localhost 改成你 chatgpt 服务器的 IP 地址。
4.4 启动 go-cqhttp,生成配置文件
首次启动时我们不要登录 QQ,我们只是需要它生成的 device.json文件。
4.5 打开 device.json,修改协议
找到 protocol,把后面的数字改成 2,然后保存并退出即可。
这会让 go-cqhttp 使用 Android Watch 协议进行登录。
4.6 启动 go-cqhttp,扫码并登录
- 注意事项
这个go-cqhttp 的扫码登录,是需要你自己的手机 QQ 和 go-cqhttp 在同一个网络环境下的才能成功的。
五. 最后按顺序启动
5.1 anaconda状态下的GLM api.py → go-cqhttp →GPT转发程序
5.1.1 qq成功页面
5.1.2 GPT转发程序成功页面
5.1.3 go-cqhttp成功页面
5.1.4 GLM成功页面
GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记相关推荐
- Python-qqbot实现QQ群翻译机器人
利用qqbot库实现QQ群自动翻译机器人: 准备工作: 先安装qqbot库: 利用翻译网站:http://fy.iciba.com/ 这个网址的在线翻译的请求头最简洁明了,语种转换上也方便,适合后期 ...
- 如何创建一个以chatgpt为基础的QQ群聊机器人的流程细节
为了创建一个基于 ChatGPT 的 QQ 群聊机器人,您需要遵循以下步骤: 1.获取 ChatGPT 模型:您可以在 OpenAI 的 GPT-3 模型中获取 ChatGPT 模型. 2.训练模型: ...
- qq群聊机器人接入ChatGPT-简介和源码
qq群聊机器人接入ChatGPT 最近 ChatGPT 很火,也注册了账号玩了玩,确实灰常强大.但是也有的小伙伴可能没办法注册账号,我就想着把qq群机器人接入ChatGPT. 过程还是比较简单顺利的. ...
- Baby Q PK小冰 谁才是QQ6.7新增的QQ群聊机器人之王 ...
一提到QQ群聊机器人,小伙伴们一定不陌生.毕竟酷Q机器人和晨风机器人插件曾风靡一时,霸占过多少QQ群啊!但这些插件虽便利,却极不稳定,经常动不动就罢工了. 腾讯爸爸听到众小伙伴们的呼声,以及近年来AI ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
- 吐血分享:QQ群霸屏技术教程(接单篇)
在文章<QQ群霸屏技术教程(利润篇)>中,阿力推推提及到QQ群霸屏技术变现的方式,稍显粗略,这里详尽介绍下(老鸟漂过). 资本 资本之上,才谈得上接单,没技能,接个毛线. 1擅长点. 建议 ...
- 我的世界e 服务器怎么注册,我的世界E世界RPG生存服 电脑版1.6.2群组云服务器
我的世界电脑版E世界RPG生存服,PC版1.6.2群组云服务器.服务器有多种玩法模式,独创RPG钻石系统享受RPG打装备强化的乐趣,一键式圈地指令菜单新手再也不用担心不会使用指令! [我的世界pc版交 ...
- QQ 群聊美少女语音AI(ChatGLM 本地化版本)
QQ 群聊美少女语音AI(ChatGLM 本地化版本) ✨ 基于 go-cqhttp 以及 VITS-fast-fine-tuning + ChatGLM 实现 ✨ Combination of Ch ...
- python 下载qq群文件_python作业/练习/实战:下载QQ群所有人的头像
步骤与提示: 1.在腾讯群网页中进入任意一个群,获取相关信息,可以用postman是试一下,可以看到我们要的是mems里面的数据,需要获取到QQ号和群名片,如果没有群名片的话取昵称 2.根据QQ号下载 ...
最新文章
- #每天一种设计模式# 模板方法
- mouseOver/mouseOut 与 rollOver/rollOut的区别
- Scala中Manifest、ClassTag、TypeTag的学习
- 亚洲综合竞争力排名发布:韩国位居第1,中国第9,大家怎么看?
- pandaboard 安装_linux fb设备(pandaboard) | 学步园
- 正则查看接口消耗时间超过4位数的
- SpringBoot整合freemarker中自定义标签获取字典表的数据
- Redis bgsave 线上分析
- jQuery - slice( start, [end] ) Method
- 一个不明觉厉的貌似包含很多linux资料索引的网页
- JAVA基本IO操作
- 如何获取公众号二维码
- UE5 live-coding和build中version“1.2“ not support build failed解决方法
- 【强化学习】什么是强化学习算法?
- spring中MessageSource的配置使用方法3--ResourceBundleMessageSource
- 用python编程解一元二次方程
- c语言课程设计会员卡计费系统,会员卡计费系统源代码.doc
- vim 录制宏,自动循环执行组合操作
- 我的投资经历(写给关注我的友军)
- K均值(K-means)聚类算法
热门文章
- Exchange Server 2010 SP2 高可用性(六)---配置OWA
- 商米设备开发之-支付
- 结构化数据与非结构数据、监督学习与非监督学习、标记与无标记
- 《土豆荣耀》重构笔记(三)创建游戏场景
- [sdx12] SDX12 IPA初始化出现Direct firmware load for ipa/ipa_fws.elf failed with error -2问题分析
- java基础,添加客户,修改客户名字
- 小程序在wxml里转数字_小程序wxml的取值问题
- Oracle数据库中的方差、标准差与协方差
- 西门子PLC S7-1500系列CPU与西门子PLC S7-300系列的通讯模块CP343-1进行TCP通讯的方法
- 基于物理相机渲染 第一篇 EV light condition(相机曝光值与光照情况关系)