介绍
出于学习的目的,开通了GPT4,开通方式见我之前的文章开通ChatGPT plus,一个人用有点浪费,发现Github上有个现成的账号共享方案,即chatgpt-web-share。
本教程将指导您快速部署一个 ChatGPT Web Share 站点和服务。您需要准备:
- 一个有效的 ChatGPT Plus 账号
- 请在设置中启用所有 beta features
- 一台 x64 Linux 服务器
- 系统:推荐 Ubuntu 20.04 LTS 以上或 Debian 10 以上
- 配置:推荐 2 核 2G RAM 以上;至少需要 1 核 1G
- 推荐使用支持 AVX 指令集的 CPU
安装
1.准备
确保你的服务器能够访问ChatGPT,国外主机或者国内主机+代理。
登录你的 ChatGPT Plus 账号,在设置启用所有 beta features。
如果你还没有安装 Docker,请先参考 Docker 官方文档 安装 Docker。
2. 创建应用目录并创建配置文件
为方便管理,数据和 docker compose 配置应该放在一个单独的文件夹(cws
)中。我们在 home 目录下创建 cws
文件夹:
cd /home
mkdir cws
cd cws/
mkdir -p /home/cws/data/config
密码配置,本文中统一使用如下密码
MONGODB_PASSWORD=password
INITIAL_ADMIN_PASSWORD=password
接下来,运行一次 Docker 容器,创建配置文件:
docker run -it --rm \
-v /home/cws/data/config:/tmp/config \
ghcr.io/chatpire/chatgpt-web-share:latest \
python /app/backend/manage.py create_config -O /tmp/config --generate-secrets --mongodb-url "mongodb://cws:password@mongo:27017" --initial-admin-password "password" --chatgpt-base-url http://ninja:7999/backend-api/
配置文件创建成功后,你可以看到 ./cws/data/config
下出现了两个文件:config.yaml
和 credentials.yaml
。
上述命令会修改配置文件,自动生成 secret (-G
)、配置 MongoDB (--mongodb-url
)、创建初始管理员账户 (--initial-admin-password
)、设置 ChatGPT 代理地址 (--chatgpt-base-url
)。你无需再手动编辑配置文件,就可以正常地启动 CWS。
3. 编辑 Docker compose 配置文件
运行如下命令,创建 .env
文件:
echo "TZ=Asia/Shanghai" > .env
echo "MONGO_INITDB_DATABASE=cws" >> .env
echo "MONGO_INITDB_ROOT_USERNAME=cws" >> .env
echo "MONGO_INITDB_ROOT_PASSWORD=password" >> .env
接下来,在 cws
目录下创建如下的 Docker compose 配置文件 docker-compose.yml
,它包括了 CWS 本身、Mongo DB、Ninja。其中,Ninja 是 ChatGPT 代理,用于跨过 Cloudflare 验证以及对话时的 Arkose 验证码。
version: "3"
services:
chatgpt-web-share:
image: ghcr.io/chatpire/chatgpt-web-share:latest
container_name: cws
restart: unless-stopped
ports:
- 5000:80
volumes:
- ./data:/app/backend/data
environment:
- TZ=${TZ}
- CWS_CONFIG_DIR=/app/backend/data/config
depends_on:
- mongo
mongo:
container_name: mongo
image: mongo:6.0
restart: always
# ports:
# - 27017:27017
volumes:
- ./mongo_data:/data/db
environment:
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
ninja:
image: ghcr.io/gngpp/ninja:latest
container_name: ninja
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- PROXIES=http://主机IP:7890
command: run
ports:
- 7999:7999
一切就绪,运行 docker-compose up -d
启动 CWS。你可以使用 docker logs cws -f
查看日志。
ninja容器的environment中配置了PROXIES,即代理,不了解怎么开通的可以查看我之前的文章Linux科学上网(CentOS 7)。
若一切正常,你可以打开 http://<服务器 IP>:5000
访问 CWS,用 admin
以及刚刚设定的密码登录。登录后,你可以进一步在设置页面修改配置。
3. 配置 ChatGPT 代理
现在,你需要参考 Ninja 文档 的说明来配置 Ninja。
为了使用GPT4,需要上传HAR文件,ChatGPT 官网发送一次 GPT-4
会话消息,浏览器 F12
下载 https://tcr9i.chat.openai.com/fc/gt2/public_key/35536E1E-65B4-4D96-9D97-6ADB7EFF8147
接口的HAR日志记录文件,支持WebUI上传更新HAR,请求路径/har/upload。
得到HAR文件:
通过webui上传HAR文件:
4. 后台配置
访问 https://chat.openai.com/api/auth/session
并复制其中的 access token 项内容,在 CWS 的后台设置中的 credentials 中填入。
来到CWS 的后台,会话管理,点击下图按钮触发会话同步,如果一切正常,你应该可以看到对话列表中出现了你的 ChatGPT Plus 账号中的旧对话。
接下来,进入对话页,尝试新建一个 GPT-4 对话并发送消息。如果一切正常,你可以收到 ChatGPT 的回复;否则,你可能需要检查配置。
发表回复