自建chagpt镜像站
以下为实测截图
初衷
之前看到很多人,都在找GPT4的搭子,我之前也开了ChatGPT Plus,讲真的20美元一个月,折合人民币将近150元,确实很贵,但是GPT4真的很好用逻辑思维比3.5好很多,钱花的也值,能够解决我很大一部分工作上的问题,我说下我的使用GTP4.0的主要场景吧图片。
- 帮我写代码,造一些轮子
- 帮我分析一些服务器上的错误日志
- 总结网站或者PDF,Word文档
- 给我稀奇古怪的想法画图
奔着独乐乐不如众乐乐的想法,想给还没用过GPT4模型的的朋友免费用一下,不用去找搭子了,然后开始研究ChatGPT的套壳应用,GitHub上看了很多项目,最后决定以开源项目CWS来搭建,然后开始研究,从买服务器,域名,证书等等也花了一点钱,折腾几天之后终于整出来了,钱没白花哈哈,能用(社畜白天还要打工没多少时间图片)
教程
创建应用目录并创建配置文件
为方便管理,数据和 docker compose 配置应该放在一个单独的文件夹(cws)中。我们在 home 目录 ~ 下创建 cws 文件夹(如果你不在 home 目录中执行下面的命令,以后的操作需要相应修改路径):
cd ~
mkdir cws && cd cws
mkdir -p data/config
我们先将密码写入环境变量,以便后续使用。这里你需要自行修改:
export MONGODB_PASSWORD=password # MongoDB 密码
export INITIAL_ADMIN_PASSWORD=password # 初始管理员密码
接下来,运行一次 Docker 容器,创建配置文件:
docker run -it --rm \
-v $PWD/data/config:/tmp/config \
moeakwak/chatgpt-web-share:latest \
python /app/backend/manage.py create_config -O /tmp/config --generate-secrets --mongodb-url "mongodb://cws:${MONGODB_PASSWORD}@mongo:27017" --initial-admin-password "${INITIAL_ADMIN_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。
手动编辑配置文件
你也可以运行如下命令创建一个简单的配置文件,然后手动编辑 data/config 下的配置文件:
docker run -it --rm \
-v $PWD/data/config:/tmp/config \
moeakwak/chatgpt-web-share:latest \
python /app/backend/manage.py create_config -O /tmp/config
或者,你可以从 这里 直接获取配置文件模板。
基于docker构建
编辑 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=$MONGODB_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/moeakwak/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
command: run --disable-webui
ports:
- "7999:7999"
environment:
- TZ=Asia/Shanghai
volumes:
- "./har/gpt3:/root/.gpt3"
- "./har/gpt4:/root/.gpt4"
一切就绪,运行 docker-compose up -d 启动 CWS。你可以使用 docker logs cws -f 查看日志。
如果你是在 NAS 上使用 mongodb,CPU 不支持 AVX 指令集,可以使用 groundhog2k/mongo:6.0.9 镜像代替 mongo:6.0。
若一切正常,你可以打开 http://<你的服务器 IP>:5000 访问 CWS,用 admin 以及刚刚设定的密码登录。登录后,你可以进一步在设置页面修改配置。