LOADING

加载过慢请开启缓存 浏览器默认开启

基于GPTPlus账号部署API

这个博客主要介绍如何基于GPT - Plus用户的账号来部署API

整个项目是对linkedlist771/infiniteGPT4: 基于revChatGPT和IOS新推出的无限次GPT4使用实现GPT4无限次数使用的API (github.com) 的一个延伸, 在之前的项目中没有解决很重要的问题, 就是反代服务器利用的是作者部署的公网服务器。如果要自己使用的话,最好能够基于自己的服务器实现一个。所以第一步我们需要构建一个反代服务。

ChatGPT反代服务构建

反代服务器的搭建,可以参考:acheong08/ChatGPT-Proxy-V4: Simple Cloudflare bypass for ChatGPT (github.com)

首先需要下载这个项目:

git clone git@github.com:acheong08/ChatGPT-Proxy-V4.git

笔者使用的服务器为centos, 基于你使用的服务器的类型,不同的命令可能稍有不同,稍作调整即可。主要分为以下几步:

  1. 安装Go环境:

Go的安装包可以从Go官网上找到,选择一个合适的版本下载到你的CentOS服务器。例如,如果我们要下载Go 1.16.4版本,可以使用下面的命令:


wget https://golang.org/dl/go1.16.4.linux-amd64.tar.gz

然后,解压这个文件到/usr/local

tar -C /usr/local -xzf go1.16.4.linux-amd64.tar.gz

将Go的二进制文件添加到PATH中:

echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bash_profile
source ~/.bash_profile

你可以使用go version命令来验证Go是否安装成功。

image-20230610174001359

我这里测试是成功的。

  1. 设置环境变量:

你需要一个ChatGPT Plus账号的PUID来设置环境变量。你可以使用下面的命令将PUID添加到环境变量中:

bashCopy codeecho "export PUID=\"user-...\"" >> ~/.bash_profile
source ~/.bash_profile

记得将”user-…”替换为你的实际PUID。

其中PUID意思为Plus UID 也就是你的账户的ID, 可以在这里找到:chat.openai.com/api/auth/session

  1. 构建和运行项目:

首先,你需要把项目代码复制到你的服务器上。你可以使用git clone命令来完成这个步骤,如果项目代码托管在一个git仓库上的话。

在项目的根目录下,使用go build命令构建项目:

go build

将会输出一下内容:

go build
go: downloading github.com/acheong08/endless v0.0.0-20230522010333-1359fd84c836
go: downloading github.com/bogdanfinn/fhttp v0.5.22
go: downloading github.com/bogdanfinn/tls-client v1.3.12
go: downloading github.com/gin-gonic/gin v1.9.0
go: downloading github.com/andybalholm/brotli v1.0.5
go: downloading github.com/bogdanfinn/utls v1.5.16
go: downloading golang.org/x/net v0.10.0
go: downloading github.com/tam7t/hpkp v0.0.0-20160821193359-2b70b4024ed5
go: downloading github.com/gin-contrib/sse v0.1.0
go: downloading github.com/mattn/go-isatty v0.0.19
go: downloading github.com/klauspost/compress v1.16.5
go: downloading golang.org/x/crypto v0.9.0
go: downloading golang.org/x/text v0.9.0
go: downloading github.com/go-playground/validator/v10 v10.14.0
go: downloading github.com/pelletier/go-toml/v2 v2.0.8
go: downloading github.com/ugorji/go/codec v1.2.11
go: downloading google.golang.org/protobuf v1.30.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading golang.org/x/sys v0.8.0
go: downloading github.com/gabriel-vasile/mimetype v1.4.2
go: downloading github.com/go-playground/universal-translator v0.18.1
go: downloading github.com/leodido/go-urn v1.2.4
...

现在,你应该可以在项目的根目录下看到一个叫做ChatGPT-Proxy-V4的可执行文件。你可以直接运行这个文件来启动项目:

这是我的目录:

ChatGPT-Proxy-V4  docker-compose.yml  Dockerfile  go1.20.5.linux-amd64.tar.gz  go.mod  go.sum  LICENSE  main.go  README.md

运行后, 你讲看到以下输出:

[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] PATCH  /admin/puid               --> main.main.func2 (4 handlers)
[GIN-debug] PATCH  /admin/password           --> main.main.func3 (4 handlers)
[GIN-debug] GET    /api/*path                --> main.proxy (3 handlers)
[GIN-debug] POST   /api/*path                --> main.proxy (3 handlers)
[GIN-debug] PUT    /api/*path                --> main.proxy (3 handlers)
[GIN-debug] PATCH  /api/*path                --> main.proxy (3 handlers)
[GIN-debug] HEAD   /api/*path                --> main.proxy (3 handlers)
[GIN-debug] OPTIONS /api/*path                --> main.proxy (3 handlers)
[GIN-debug] DELETE /api/*path                --> main.proxy (3 handlers)
[GIN-debug] CONNECT /api/*path                --> main.proxy (3 handlers)
[GIN-debug] TRACE  /api/*path                --> main.proxy (3 handlers)
2023/06/10 05:54:46 1878014 :9090

目前,我们就部署完毕了。 注意,这里你需要打开9090端口的防火墙,不然的话反代无法发挥作用。

sudo firewall-cmd --permanent --add-port=9090/tcp
sudo firewall-cmd --reload