(2023.12 更新,api 配额使用完了,但在 openai 官网是可以直接使用 3.5 的,需要登录,先用着吧,收费的只是所有的 api 和 官网的 4.0)
(2023.11.05 更新, 近端时间 风太大, 很多 qiang 都倒了,删库了但软件本身依然能用。
可依靠备份仓库或已下载的安装包续命,或指定 gpt 的代理地址 OPENAI_API_BASE_URL 为国内镜像)
最近,白嫖的 New Bing (Bing AI) 又抽风了,想要稳定使用还得靠自己,于是便自己搞了个相对稳定点的,
方案1:qiang外 IP 服务器 + ChatGPT(key) + docker 镜像
方案2:qiang内 IP 服务器 + ChatGPT(key) + 代理 + docker 镜像
方案3;本地搭建, 只需 ChatGPT(key) + 代理 + docker 镜像
根据自己的资源选择方案。根据当前手上的资源 我选了方案2
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
// 运行
systemctl start docker
// 可查看运行状态
systemctl status docker
docker run --name chatgpt-web -d -p 1024:3002 \
--env OPENAI_API_KEY=秘钥 \
--env AUTH_SECRET_KEY=密码 \
--env OPENAI_API_BASE_URL=https://api.openai.com \
chenzhaoyu94/chatgpt-web:latest
-e
指定代理 其它同上, IP 和端口 替换为真实 IP 和代理端口, IP 不能使用 localhost 和 127.0.0.1 等
docker run --name chatgpt-web -d -p 1024:3002 \
-e HTTP_PROXY=http://IP:7890 \
-e HTTPS_PROXY=http://IP:7890 \
--env OPENAI_API_KEY=密钥 \
--env AUTH_SECRET_KEY=密码 \
--env OPENAI_API_BASE_URL=https://api.openai.com \
chenzhaoyu94/chatgpt-web:latest
这一步安装时间较长,
秘钥:OpenAI的key,将你自己的key复制进去,key的获取可在网t上b了解
密码:访问密码,可以自己随意设置
docker ps -a
将安全组添加端口1024
到这就可以访问了,不过只能IP访问(端口是1024)
利用 Nginx 进行端口转发
// 查看容器
docker ps -a
// 停止 by容器名
docker stop chatgpt-web
// 启动 by容器名
docker start chatgpt-web
docker ps -a
docker stop chatgpt-web
docker rm -f chatgpt-web
docker ps -a
docker run --name chatgpt-web -d -p 1024:3002 \
--env OPENAI_API_KEY=秘钥 \
--env AUTH_SECRET_KEY=密码 \
--restart always chenzhaoyu94/chatgpt-web:latest
搞到账号后(可以自己想办法注册,或购买独享账号),使用 API 超出额度后,可以直接访问官网免费使用 ChatGPT 3.5
代理 IP 可能被 Ban,尝试切换 IP
Docker 镜像 chenzhaoyu94/chatgpt-web:latest
(ChatGPT 3.5, 模型是 2021 年 9 月完成训练,GPT回答中说的)(截至 2024 年 1 月 官网最新的 3.5 模型的数据是 2022 年 1 月的)
阿里云镜像 registry.cn-hangzhou.aliyuncs.com/generative/chatgpt-web
Docker 镜像地址 https://hub.docker.com/r/chenzhaoyu94/chatgpt-web
Docker compose 及 相关参数
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
ports:
- 3002:3002
environment:
# 二选一
OPENAI_API_KEY: xxxxxx
# 二选一
OPENAI_ACCESS_TOKEN: xxxxxx
# API接口地址,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_BASE_URL: xxxx
# API模型,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_MODEL: xxxx
# 反向代理,可选
API_REVERSE_PROXY: xxx
# 访问权限密钥,可选
AUTH_SECRET_KEY: xxx
# 每小时最大请求次数,可选,默认无限
MAX_REQUEST_PER_HOUR: 0
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
# Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
SOCKS_PROXY_HOST: xxxx
# Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
SOCKS_PROXY_PORT: xxxx
查看另外一篇 无图形界面的 Linux 使用代理
本地测试 不需要给 docker 再次设置代理,可以直接走宿主机代理
服务器测试 以下的 代理2 代理3 设置了但无效, 最终我是用了 代理1
以下的 IP 地址不要用 localhost 和 127.0.0.1,需要实际的 IP 才能访问到,docker 容器相当于一台独立的主机所以 localhost 和 127.0.0.1 是指向 容器本身 而不是服务器 IP
创建容器时指定
docker run xxx -e -e HTTP_PROXY=http://IP:7890 -e HTTPS_PROXY=http://IP:7890 镜像
vim ~/.docker/config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://IP:7890",
"httpsProxy": "http://IP:7890"
}
}
}
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://IP:7890/" "HTTPS_PROXY=https://IP:7890/"
先在 http://clash.razord.top/ 代理客户端设置 全局代理 便于测试
// 重新加载Docker配置
sudo systemctl daemon-reload
// 重启Docker服务
sudo systemctl restart docker
// 启动容器
docker start chatgpt-web
// 进入容器
docker exec -it chatgpt-web sh
// 测试ip。默认不带 curl 命令,只好用 wget。有的话直接 `curl myip.ipip.net`
wget myip.ipip.net
// 也可一步到位, 像 adb 命令一样
// docker exec -it chatgpt-web wget myip.ipip.net
// 查看wget下载的内容
cat index.html
// 删除测试时下载的文件
rm index.html
docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
如 docker logs chatgpt-web