一个ChatGPT QQ机器人搭建的方法

Longli Lv3

一个ChatGPT QQ机器人搭建方法,搭建在relpit,可以直接裸连OpenAI。
基于:go-cqhttp 项目与GPT-QQRobot 项目。
教程改编自酷安用户@喵喵喵先森原文链接

准备工作

1.下载

1.在go-cqhttp项目release界面 下载go-cqhttp_linux_amd64.tar.gz并解压。
2.在GPT-QQRobot项目的主页 ,点击绿色的按钮Code,再点击菜单中的Download ZIP,下载并解压。

2.注册账号

1.注册OpenAI账号,并点击链接 获取专属自己的ChatGPT的API。
2.注册replit账号,官网 https://replit.com/

配置

3.配置ChatGPT API

在GPT-QQRobot解压后的根目录,新建config文件夹,在config文件夹内新建api_keys.txt文件,并在里面粘贴好自己的api(一行一个,第一个调用失败会顺延)。

4.使用go-cqhttp登录账号

1.下载Windows版本的go-cqhttp。

4.1 Windows使用方法

1.双击go-cqhttp_*.exe,根据提示生成运行脚本
2.双击运行脚本
[WARNING]: 尝试加载配置文件 config.yml 失败: 文件不存在 [INFO]: 默认配置文件已生成,请编辑 config.yml 后重启程序.
3.在config.yml中填写账号、密码

4.在生成的device.json文件中,把设备设置为Android watch,即:

"protocol":2,


5.扫码登录

注意:登录的时候必须选择正向WS

6.扫码登录成功之后,在go-cqhttp程序所在文件夹会生成config.yml、device.json、session.token三个文件,保存留用。

具体方法可以参照go-cqhttp的使用文档。

5.配置replit

注册并登录,由于replit上的个人项目是公开的,你如果使用个人项目搭建机器人,你的QQ账号密码以及ChatGPT的API都会暴露,所以这里建议使用团队项目;
1.点击左侧Teams,注册一个团队。

2.新建bash项目。

3.拖拽上传第一步里下载并解压好的文件到replit。
4.拖拽上传4.6里go-cqhttp程序所在文件夹获得config.yml、device.json、session.token三个文件。
5.点击show hidden files

将replit.nix中的内容替换为:

1
2
3
4
5
6
7
8
9
10
{ pkgs }: {
deps = [
pkgs.python39Full
pkgs.nginx
pkgs.libproxy
pkgs.nodejs-16_x
pkgs.bashInteractive
pkgs.man
];
}

6.部署机器人

我的目录结构如下

1.首先在replit项目的shell或者console窗口中输入命令:
cd GPT-QQRobot

注意这里的GPT-QQRobot文件夹是我的结构目录里的,如果你上传的目录名不是这个,请适当修改

2.按回车,再输入安装依赖命令:
npm install

replit可能会要你选择node.js的版本,回车就行。

命令跑完之后,机器人就部署完成了。

7.将机器人与go-cqhttp对接

在replit左下角的tools里面找到secrets,并添加变量。

key:WS_URL
value:ws://127.0.0.1:8080

项目定时重启保活

1.在项目根目录main.sh文件,中粘贴以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
while true
do
if [ -d "data" ]; then
rm -rf data
fi
if [ -d "logs" ]; then
rm -rf logs
fi
sleep 86400 # 等待24小时后再次检测
done &

while true
do
curl "https://zixi-1.cloudshadow.repl.co" >/dev/null 2>&1 ;
echo "trying to keep alive 2"
sleep 5
done &

while true
do
echo "trying to keep alive"
curl -sSk https://zixi-1.cloudshadow.repl.co > /dev/null
sleep 5
done &

while true
do
# 检查go-cqhttp是否在运行
if pgrep -x "go-cqhttp" > /dev/null
then
echo "go-cqhttp is running"
else
cd ~/zixi-1
./go-cqhttp -faststart
cd ~/zixi-1/GPT-QQRobot
npm start&
echo "go-cqhttp startting"
fi
done &
while true
do
cd ~/zixi-1/GPT-QQRobot
npm start # 启动GPT-QQROBOT

sleep 8

./GPT-QQRobot/clean.sh &

# 检查node是否在运行
if pgrep -x "node" > /dev/null
then
echo "node is running"
else
echo "node is not running"
cd ~/zixi-1/GPT-QQRobot
npm start &
echo "node start now"
fi


cd ~/zixi-1
sleep 180 # 等待3分钟

done

注意:
1.请将代码中的zixi-1替换为您的项目名,如图所示:

2.请将代码中的cd ~/zixi-1/GPT-QQRobot 中的GPT-QQRobot替换为您GPT-QQRobot项目的上传路径。

2.点击run,即可运行
3.弹出如图所示的警告是正常情况,无视即可

4.私聊#gpt begin 开始会话

相关问题

Q.机器人报错无法连接CQHTTP
A:在步骤4.1,登录的时候必须选择正向WS
Q.npm install的时候报错command not found或只一次性生效
A:执行步骤5.5

  • 标题: 一个ChatGPT QQ机器人搭建的方法
  • 作者: Longli
  • 创建于 : 2023-03-19 02:53:00
  • 更新于 : 2025-06-23 00:47:22
  • 链接: https://blog.longli.space/2023/03/19/2023031901/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论