为啥需要自建ChatGPT反代服务
OpenAI提供了两种访问方式,一种是直接在ChatGPT网页端使用的Access Token方式,这种方式可以免费使用GPT-3.5模型,只需要登录即可使用。但缺点是不稳定,且无法扩展。另一种是使用API,注册用户可以获得5美元的赠送额度,但使用完之后就需要付费。这种方式相对更稳定,但缺点是赠送额度较少且存在限流,目前是3条/分钟。
因此,对于那些希望免费使用OpenAI GPT-3.5模型的用户来说,选择Access Token方式是比较好的选择。但是需要解决的问题是不稳定以及可能IP被封禁的问题。为了解决这些问题,我们可以自建反向代理服务来提高稳定性,并保护我们的IP地址不被OpenAI封禁。也有一些公共的反向代理服务可以选择使用,但是很不稳定,因为它们是免费共享的。所以自建反向代理服务是一个不错的选择。
项目地址:https://github.com/dqzboy/ChatGPT-Proxy
ChatGPT-Proxy一键部署
如果自己安装觉得麻烦,可以使用提供的一键部署脚本! 脚本目前已实现基础环境安装、所需组件依赖部署、镜像版本自动更新、403|401|429检测邮箱告警(使用QQ邮箱会被Tencent邮箱服务拦截)、uptime-kuma监控等功能!
说明:目前脚本适用于CentOS 7\8\9、RHEL-8\9、Ubuntu、debian以及opencloudos系统;运行脚本需要确保网络环境稳定(确保系统所需组件可以正常下载)。
# CentOS
yum -y install wget
# Ubuntu
apt -y install wget
bash -c "$(wget -q -O- https://raw.githubusercontent.com/dqzboy/ChatGPT-Proxy/main/install/chatgpt-proxy.sh)"
环境说明
一台VPS,规格最低配 1C1G;注意:warp不支持arm架构的机器
VPS可以正常访问 chatgpt;或者国内服务器实现科学上网也可以
cd /data/go-chatgpt-api
运行容器服务
docker-compose up -d
# 检查运行的容器;确保容器状态为UP
docker ps
# 检测容器映射到宿主机的监听端口是否监听
ss -tnlp|grep 8080
检查是否正常
go-chatgpt-api需要初始化启动需要耐心等待
# 查看容器日志是否运行正常
docker logs -f go-chatgpt-api
出现 Service go-chatgpt-api is ready. 则表示服务可正常使用了
容器镜像更新
# 停止
docker-compose down
# 拉取新镜像
docker-compose pull
# 启动
docker-compose up -d
项目接入自建反代
接口更新
- 原接口: http://go-chatgpt-api:8080/chatgpt/conversation
- 更新后: http://go-chatgpt-api:8080/chatgpt/backend-api/conversation
项目:Chanzhaoyu/chatgpt-web | Kerwin1202/chatgpt-web
ChatGPTUnofficialProxyAPI(accessToken)
- 现在我们可以找一个项目,使用access token模式,并使用我们自建的代理地址进行访问;
- 自建IP的访问地址为http://vps-ip:8080/chatgpt/backend-api/conversation
- 如果前端项目是直接跑的并且与反代服务同在一台VPS上,则反代地址可写成:http://127.0.0.1:8080/chatgpt/backend-api/conversation
- 如果你前端项目是容器启的并且与反代服务同在一台VPS上,则反代地址可写成:http://go-chatgpt-api:8080/chatgpt/backend-api/conversation
- access token获取:https://chat.openai.com/api/auth/session
API_REVERSE_PROXY=http://127.0.0.1:8080/chatgpt/backend-api/conversation
现在我们访问chatgpt-web,查看是否可以正常使用