搞懂并自主搭建ChatGPT的Reverse代理
在本文中,我们将介绍如何通过Reverse反向代理来访问ChatGPT官网服务,以及如何使用Go和Docker技术进行自行搭建。
ChatGPT的代理的两种情况
在使用ChatGPT,我们会遇到需要进行反向代理的情况。大体上,反向代理分为API代理和Reverse代理。
- API代理:它是用于调用OpenAI提供的ChatGPT的API接口api.openai.com而建立的代理,通常情况下,只需要使用范围内的国家区域的服务器,就可以直接进行反向代理。
- Reverse代理:它是用于反代OpenAi的ChatGPT官网chat.openai.com而建立的代理。大多数情况下,需要想办法解决Cloudflare的问题,反代难度相比API代理更高。
本文主要讨论的是第二种代理。
公共Reverse代理
在实际使用中,如果你没有足够的资源或者不希望自己去搭建反向代理,你可以选择使用公共的反向代理。这里有两个公共的反向代理服务:
- https://ai.fakeopen.com/api/conversation
- https://api.pawan.krd/backend-api/conversation
这两个公共反向代理服务可以帮你直接访问ChatGPT官网服务,无需自行搭建代理服务。
自己搭建Reverse代理
然而,如果你希望有更大的控制权,或者出于安全性的考虑,你也可以自行搭建反向代理。下面我们将通过go-chatgpt-api项目和warp-cli项目来演示如何搭建。
首先安装Docker和Docker Compose,然后创建以下的docker-compose.yml文件:
version: "3.1"
services:
gochatgptapi:
image: linweiyuan/go-chatgpt-api:latest
container_name: gochatgptapi
restart: unless-stopped
ports:
- 8080:8080
environment:
- GO_CHATGPT_API_PROXY=socks5://warpcli:65535
depends_on:
- warpcli
warpcli:
image: surenkid/warp-cli:latest
container_name: warpcli
restart: unless-stopped
ports:
- 65535:65535
这段配置创建了两个服务:gochatgptapi和warpcli。其中,gochatgptapi是Reverse反向代理服务器,它将请求转发到warpcli。warpcli是实现socks5协议的Cloudflare WARP客户端,主要用于将来自gochatgptapi的请求通过cloudflare的warp节点转发到真正的ChatGPT服务端。如果你所在的服务器可以直接访问chat.openai.com官网,则不需要warp-cli这个服务。
如果最新版的gochatgptapi无法稳定使用,也可以使用旧版,旧版基于chromedrive,内存占用会更大一些:
version: "3.1"
services:
gochatgptapi:
image: surenkid/go-chatgpt-api:latest
container_name: gochatgptapi
hostname: gochatgptapi
restart: unless-stopped
ports:
- 8080:8080
environment:
- GIN_MODE=release
- CHATGPT_PROXY_SERVER=http://undetectedchromedriver:9515
- NETWORK_PROXY_SERVER=socks5://warpcli:65535
depends_on:
- undetectedchromedriver2ktsee
- warpcli2ktsee
undetectedchromedriver:
image: surenkid/undetected-chromedriver:latest
container_name: undetectedchromedriver
hostname: undetectedchromedriver
restart: unless-stopped
warpcli:
image: surenkid/warp-cli:latest
container_name: warpcli
hostname: warpcli
restart: unless-stopped
ports:
- "65535:65535"
在docker-compose.yml文件所在的目录运行
docker-compose up -d
这个命令将启动两个容器:gochatgptapi和warpcli。然后gochatgptapi服务将在本地的8080端口上监听,warpcli服务将在本地的65535端口上监听。
这样就成功地在本地搭建了一个ChatGPT的Reverse反向代理服务。你可以通过访问http://localhost:8080来测试这个服务是否工作正常。例如:
- http://localhost:8080/chatgpt/conversation
更多该服务的接口,请参考作者的项目页面查看。
需要注意的是,使用这种方式搭建的反向代理服务,由于没有进行任何安全性的配置,因此建议仅在本地或者内网环境中使用。如果你希望将这个服务公开到互联网上,那么你需要配置相应的安全性措施,比如使用HTTPS、设置访问控制等。
希望通过本文,能帮助你理解反向代理,并能自己动手搭建一个反向代理服务。
评论