一. 概述
1.1 整體結(jié)構(gòu)
GLM-6B模型服務(wù)器
↓ 8000端口
chatgpt-mirai-qq-bot
↓ 接收轉(zhuǎn)發(fā) 添加頭信息
go-cqhttp qq群機(jī)器人
- 以下chatgpt-mirai-qq-bot簡(jiǎn)稱GPT轉(zhuǎn)發(fā)程序
1.2 目標(biāo)
實(shí)現(xiàn)本地化部署的GLM q群機(jī)器人
1.3 需求
- 最好16GB的顯存 顯卡性能要求不高
- window環(huán)境
1.4 流程說(shuō)明
該項(xiàng)目的是利用lss233大佬的項(xiàng)目一頭對(duì)接GLM模型將其消息處理成go-cqhttp可以處理的形式最后發(fā)送到qq群內(nèi)
lss233大佬的項(xiàng)目地址
https://github.com/lss233/chatgpt-mirai-qq-bot
二. 部署流程
看的出流程的核心是GPT轉(zhuǎn)發(fā)程序
2.1 使用GPT轉(zhuǎn)發(fā)程序幫助文檔
2.1.1 使用git安裝GLM
首先我們跟著GPT轉(zhuǎn)發(fā)程序的文檔一步一步來(lái)
文檔地址
https://chatgpt-qq.lss233.com/pei-zhi-wen-jian-jiao-cheng/jie-ru-ai-ping-tai/jie-ru-chatglm
# 下載項(xiàng)目
git clone https://github.com/THUDM/ChatGLM-6B.git
cd ChatGLM-6B
# 安裝依賴
pip install -r requirements.txt
pip install fastapi uvicorn
# 啟動(dòng)
python api.py
- 所以這里我們需要安裝git和python沒(méi)啥好說(shuō)的
python最好使用3.10.10 git直接next next安裝就完事了
2.1.2 不使用git安裝GLM
這里安裝Chat的時(shí)候你可以不使用git來(lái)進(jìn)行安裝
因?yàn)檫@里面的模型文件特別大 容易下不下來(lái) 不會(huì)科學(xué)的下的很慢
如果出現(xiàn)這種情況 刪掉下載的項(xiàng)目
https://www.bilibili.com/video/BV1gX4y1C7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=ac6f57cbd263a9d994cdb0bece060fc9
跟著這個(gè)視頻前面做
這里如果我們跟著幫助文檔的走python api.py它就會(huì)報(bào)錯(cuò)
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 cuda
return 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 _apply
module._apply(fn)
File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 797, in _apply
module._apply(fn)
File "C:\Users\jsp\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\modules\module.py", line 820, in _apply
param_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_init
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
這一坨的報(bào)錯(cuò)一共兩個(gè)意思
- 裝cuda
- 裝torch
所以這里我們因該是去裝這兩玩意 但是我裝了半天沒(méi)裝好
步驟因該是 先裝cuda 再裝 torch 但是這個(gè)torch在windows上對(duì)cuda的版本要求嚴(yán)格 所以如果你要正常裝 我建議你先看torch的版本然后找到對(duì)應(yīng)的cuda版本進(jìn)行安裝
我這里跳到另外一個(gè)up的Anaconda Navigator視頻
https://www.bilibili.com/video/BV1gX4y1C7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=ac6f57cbd263a9d994cdb0bece060fc9
當(dāng)時(shí)都沒(méi)想著能用但是這個(gè)Anaconda Navigator模擬了一個(gè)python環(huán)境3.10.10的環(huán)境結(jié)果就能用了
2.2 使用Anaconda Navigator 虛擬運(yùn)行GLM
感謝這個(gè)BillBum up做了排除問(wèn)題的視頻 不然我還不知道咋搞
實(shí)在不知道怎么弄的跟視頻
2.2.1 https://www.anaconda.com/上下載Anaconda
2.2.2 安裝的時(shí)候最好不要安在c盤 同時(shí)注意
修改環(huán)境文件路徑
2.2.3 找到安裝好的anaconda 運(yùn)行anaconda Navigator
2.2.4 啟動(dòng)anconda的終端
2.2.5 anconda環(huán)境依賴安裝
cd到我們剛才操作的代碼的目錄
依賴不放心就再安裝一次
2.2.6 啟動(dòng)躺雷
- up主的視頻是想使用web網(wǎng)站 但我們是要用api接口 但是可以用它的文件來(lái)下載相關(guān)的依賴 其實(shí)是當(dāng)時(shí)想跟著做出來(lái)
2.2.7 處理同樣的報(bào)錯(cuò)
- 輸入啟動(dòng)命令 出現(xiàn)同樣的報(bào)錯(cuò)
2.2.8 虛擬環(huán)境中下載pytorch
- 這里如果沒(méi)有就重新啟動(dòng)anaconda一次再進(jìn)來(lái)
- 再次啟動(dòng)調(diào)試
- 嘗試啟動(dòng)發(fā)現(xiàn)差依賴 差什么裝什么
- 差什么裝什么
- 能啟動(dòng)他的web當(dāng)然好 同時(shí)我們也要嘗試我們的 python api.py
2.2.9 成功運(yùn)行GLM
- 可以看到它端口開(kāi)在8000
三. GPT轉(zhuǎn)發(fā)程序接入 GLM
3.1 下載接入程序
git上下載lss233大佬的轉(zhuǎn)接程序
https://github.com/lss233/chatgpt-mirai-qq-bot
3.2 參考接入程序教程修改配置文件
3.2.1 修改接入
3.2.2 修改對(duì)接go-cqhttp
四. go-cqhttp對(duì)接和使用
go-cq也是一個(gè)很有名的項(xiàng)目了
項(xiàng)目地址https://github.com/Mrs4s/go-cqhttp
找一個(gè)喜歡的版本安裝 我用的這個(gè)
4.1 下載 go-cqhttp
你可以在這里下載最新的 go-cqhttp:https://github.com/Mrs4s/go-cqhttp/releases
4.2 初始化 go-cqhttp
解壓并啟動(dòng) go-cqhttp,選 3 后回車,退出程序。
4.3 設(shè)置 go-cqhttp
編輯 go-cqhttp 的 config.yaml,設(shè)置機(jī)器人的 QQ 號(hào)和反向 Universal 地址 (這個(gè)反向 Universal 地址和前面的 reverse_ws_host 、reverse_ws_port )有關(guān)
這里的 universal 地址的寫法如下:
- 如果你的 go-cqhttp 和 chatgpt 在同一臺(tái)機(jī)器上,那么就寫: ws://localhost:8566/ws ,這里的 8566 和 reverse_ws_port的值是一樣的。
- 如果你的 go-cqhttp 和 chatgpt 在不同的機(jī)器上,那么就在上面的基礎(chǔ)上,把 localhost 改成你 chatgpt 服務(wù)器的 IP 地址。
4.4 啟動(dòng) go-cqhttp,生成配置文件
首次啟動(dòng)時(shí)我們不要登錄 QQ,我們只是需要它生成的 device.json文件。
4.5 打開(kāi) device.json,修改協(xié)議
找到 protocol,把后面的數(shù)字改成 2,然后保存并退出即可。
這會(huì)讓 go-cqhttp 使用 Android Watch 協(xié)議進(jìn)行登錄。
4.6 啟動(dòng) go-cqhttp,掃碼并登錄
- 注意事項(xiàng)
這個(gè)go-cqhttp 的掃碼登錄,是需要你自己的手機(jī) QQ 和 go-cqhttp 在同一個(gè)網(wǎng)絡(luò)環(huán)境下的才能成功的。
五. 最后按順序啟動(dòng)
5.1 anaconda狀態(tài)下的GLM api.py → go-cqhttp →GPT轉(zhuǎn)發(fā)程序
5.1.1 qq成功頁(yè)面
5.1.2 GPT轉(zhuǎn)發(fā)程序成功頁(yè)面
5.1.3 go-cqhttp成功頁(yè)面
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-560942.html
5.1.4 GLM成功頁(yè)面
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-560942.html
到了這里,關(guān)于GLM聯(lián)合go-cqhttp實(shí)現(xiàn)qq群GLM機(jī)器人服務(wù)器的本地化部署筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!