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 需求

  1. 最好16GB的显存 显卡性能要求不高
  2. 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

这一坨的报错一共两个意思

  1. 装cuda
  2. 装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机器人服务器的本地化部署笔记相关推荐

  1. Python-qqbot实现QQ群翻译机器人

    利用qqbot库实现QQ群自动翻译机器人: 准备工作: 先安装qqbot库: 利用翻译网站:http://fy.iciba.com/  这个网址的在线翻译的请求头最简洁明了,语种转换上也方便,适合后期 ...

  2. 如何创建一个以chatgpt为基础的QQ群聊机器人的流程细节

    为了创建一个基于 ChatGPT 的 QQ 群聊机器人,您需要遵循以下步骤: 1.获取 ChatGPT 模型:您可以在 OpenAI 的 GPT-3 模型中获取 ChatGPT 模型. 2.训练模型: ...

  3. qq群聊机器人接入ChatGPT-简介和源码

    qq群聊机器人接入ChatGPT 最近 ChatGPT 很火,也注册了账号玩了玩,确实灰常强大.但是也有的小伙伴可能没办法注册账号,我就想着把qq群机器人接入ChatGPT. 过程还是比较简单顺利的. ...

  4. Baby Q PK小冰 谁才是QQ6.7新增的QQ群聊机器人之王 ...

    一提到QQ群聊机器人,小伙伴们一定不陌生.毕竟酷Q机器人和晨风机器人插件曾风靡一时,霸占过多少QQ群啊!但这些插件虽便利,却极不稳定,经常动不动就罢工了. 腾讯爸爸听到众小伙伴们的呼声,以及近年来AI ...

  5. Spark集群基于Zookeeper的HA搭建部署笔记(转)

    原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...

  6. 吐血分享:QQ群霸屏技术教程(接单篇)

    在文章<QQ群霸屏技术教程(利润篇)>中,阿力推推提及到QQ群霸屏技术变现的方式,稍显粗略,这里详尽介绍下(老鸟漂过). 资本 资本之上,才谈得上接单,没技能,接个毛线. 1擅长点. 建议 ...

  7. 我的世界e 服务器怎么注册,我的世界E世界RPG生存服 电脑版1.6.2群组云服务器

    我的世界电脑版E世界RPG生存服,PC版1.6.2群组云服务器.服务器有多种玩法模式,独创RPG钻石系统享受RPG打装备强化的乐趣,一键式圈地指令菜单新手再也不用担心不会使用指令! [我的世界pc版交 ...

  8. QQ 群聊美少女语音AI(ChatGLM 本地化版本)

    QQ 群聊美少女语音AI(ChatGLM 本地化版本) ✨ 基于 go-cqhttp 以及 VITS-fast-fine-tuning + ChatGLM 实现 ✨ Combination of Ch ...

  9. python 下载qq群文件_python作业/练习/实战:下载QQ群所有人的头像

    步骤与提示: 1.在腾讯群网页中进入任意一个群,获取相关信息,可以用postman是试一下,可以看到我们要的是mems里面的数据,需要获取到QQ号和群名片,如果没有群名片的话取昵称 2.根据QQ号下载 ...

最新文章

  1. #每天一种设计模式# 模板方法
  2. mouseOver/mouseOut 与 rollOver/rollOut的区别
  3. Scala中Manifest、ClassTag、TypeTag的学习
  4. 亚洲综合竞争力排名发布:韩国位居第1,中国第9,大家怎么看?
  5. pandaboard 安装_linux fb设备(pandaboard) | 学步园
  6. 正则查看接口消耗时间超过4位数的
  7. SpringBoot整合freemarker中自定义标签获取字典表的数据
  8. Redis bgsave 线上分析
  9. jQuery - slice( start, [end] ) Method
  10. 一个不明觉厉的貌似包含很多linux资料索引的网页
  11. JAVA基本IO操作
  12. 如何获取公众号二维码
  13. UE5 live-coding和build中version“1.2“ not support build failed解决方法
  14. 【强化学习】什么是强化学习算法?
  15. spring中MessageSource的配置使用方法3--ResourceBundleMessageSource
  16. 用python编程解一元二次方程
  17. c语言课程设计会员卡计费系统,会员卡计费系统源代码.doc
  18. vim 录制宏,自动循环执行组合操作
  19. 我的投资经历(写给关注我的友军)
  20. K均值(K-means)聚类算法

热门文章

  1. Exchange Server 2010 SP2 高可用性(六)---配置OWA
  2. 商米设备开发之-支付
  3. 结构化数据与非结构数据、监督学习与非监督学习、标记与无标记
  4. 《土豆荣耀》重构笔记(三)创建游戏场景
  5. [sdx12] SDX12 IPA初始化出现Direct firmware load for ipa/ipa_fws.elf failed with error -2问题分析
  6. java基础,添加客户,修改客户名字
  7. 小程序在wxml里转数字_小程序wxml的取值问题
  8. Oracle数据库中的方差、标准差与协方差
  9. 西门子PLC S7-1500系列CPU与西门子PLC S7-300系列的通讯模块CP343-1进行TCP通讯的方法
  10. 基于物理相机渲染 第一篇 EV light condition(相机曝光值与光照情况关系)