因为运用 ChatGPT 有着极为严苛的环境要求,不仅要求有魔法,还要有特定地区的魔法,并且还得开大局魔法,导致挺长时间以来,我都靠着镜像站来占廉价。

但随着越来越的多的镜像站 404 后,尽管我还能够拜访,但团队里的挺多人并没有魔法,为了方便团队成员的运用,我寻思自己搭建一套,这样咱们不必魔法也能够自在运用 ChatGPT,而且相当安稳。

1. 全体思路

预备一台国度之外的服务器,这台服务器要满意两个要求

  • 能流畅调用 Open API的接口,不会因为地区问题被禁用
  • 服务器的 IP 不在国度的黑名单上(咱在国度之内才干拜访)

然后在这台服务器上,布置咱们的 web 运用,并装备上咱们的 API Key。

2. 环境预备

服务器我运用的狗云的,线路优质,关键价格廉价,假如你没有其他更好的挑选,能够考虑下。

过程很简单:

1、登陆/注册狗云:www.dogyun.com/?ref=230330

2、实名认证:有必要过程,认证后才购买

3、充值:和一般的网购逻辑不同,狗云是先充值再消费

4、购买:这个最重要,下面详细说一下

狗云上的服务器有两种:经典云和弹性云

它们有以下几个差异:

  1. 布置方法:经典云服务器是基于传统的物理服务器架构实现的,你需求需求通过操控台或 API 创建并分配固定数量的 CPU、内存和存储资源。而弹性云则是基于虚拟化技术构建的云服务器,它能够依据你的实践需求动态调整核算和存储资源。
  2. 灵敏性:因为经典云服务器的资源分配是静态的,因而无法依据事务需求进行快速扩展或缩小,使得它的灵敏性相对较为有限。而弹性云则能够在几分钟内调整核算和存储资源,以满意不同事务场景下的需求改变。
  3. 费用:经典云服务器一般比弹性云更廉价,因为它们的资源是固定的,办理本钱也较低。但是,在实践的运用中,假如你需求频频地调整资源,则可能需求购买更多的经典云服务器,这将增加你的运用本钱。而弹性云则能够依据实践的资源需求付费,能够更好地操控运用本钱。
  4. 安全性:经典云服务器因为缺少弹性云的冗余和高可用性功能,因而可能会存在数据丢失和服务中断等危险。弹性云则具有多种安全和备份机制,能够提供更加牢靠和安稳的云核算服务。

总的来说呢,弹性云具有更加灵敏、高可用和安全的优势,但相对来说也更加昂贵。假如你需求安稳和牢靠的核算资源,主张挑选弹性云;假如你需求相对较低的本钱和办理复杂度,能够挑选经典云服务器。

我这边挑选的是弹性云,节点挑选丑国的,满意以上两个条件

教程:部署个人专属的 ChatGPT 镜像教程

装备挑选最低装备的,横竖不够用的话还能够扩展。

教程:部署个人专属的 ChatGPT 镜像教程

教程:部署个人专属的 ChatGPT 镜像教程

体系我挑选 Ubuntu20 的,没有挑选 CentOS,主要 CentOS 体系相对较老,怕遇见一些包的问题,增加布置难度。

教程:部署个人专属的 ChatGPT 镜像教程

总的算下来只需求一个月只需求 45 块钱的根底费用,流量有超越,要再额外扣费。ChatGPT 运用主要是文字,一般是够用的。

教程:部署个人专属的 ChatGPT 镜像教程

机器创建好后,需求等待一段时间才干发动,能够在操控台上看到公网 ip 和暗码,没有写明 ssh 端口,那就是 22

3. 下载代码

ChatGPT 的镜像源码,我挑选 yuezk/chatgpt-mirror ,github 上也有其他的模板,没有仔细去比照差异,只需能用即可。

运用 git 直接下载 gpt 镜像网站的代码

git clone https://github.com/yuezk/chatgpt-mirror.git

进入 chatgpt-mirror 目录

cd chatgpt-mirror

并新建一个 .env 文件,输入 OPENAI_API_KEY:能够前往 API-Keys(platform.openai.com/account/api… 生成

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4. 装置依赖

chatgpt-mirror 的运转需求有 nodejs 环境,因而咱们要先装置一下nodejs 相关工具

1、装置 Node.js:首要,你需求装置 Node.js。这是因为 pnpm 是一个 Node.js 包办理器。你能够运用以下指令装置 Node.js:

sudo apt update
sudo apt install nodejs

2、装置 npm:pnpm 的装置需求运用 npm 指令,因而需求装置 npm 和 npx。

sudo apt install npm
sudo npm install -g npx

3、装置 pnpm:现在就能够运用 npm 来装置 pnpm。只需求运用以下指令即可:

sudo npm install -g pnpm

为了防止呈现一些问题,咱们把上面装置的 npm 和 pnpm 都更新至最新版别

首要晋级 npm

  1. 装置 n 模块:n 是一个 Node.js 版别办理器,能够协助你方便地装置和办理不同版别的 Node.js。
  2. 装置最新版别的 Node.js:装置完 n 模块后,就能够在终端中运转以下指令来装置最新版别的 Node.js:
# 装置 n 模块:n 是一个 Node.js 版别办理器,能够协助你方便地装置和办理不同版别的 Node.js
sudo npm install -g n

# 装置完 n 模块后,就能够在终端中运转以下指令来装置最新版别的 Node.js
sudo n stable

再晋级 pnpm

sudo npm update -g pnpm

5. 发动服务

全部预备就绪后,就能够运用如下指令来发动 web 服务

# 装置依赖
$ pnpm install

# 编译
$ pnpm run build

# 发动
$ pnpm run start:prod

在你没有魔法的环境下直接拜访 http://ip:3000 就能够看到了解的页面了,大功告成。

教程:部署个人专属的 ChatGPT 镜像教程

因为上面的目录是在当时终端运转的,当终端断开后,进程也会退出,因而最好运用 nohup 将其放在后台运转

nohup pnpm run start:prod > server.log 2>&1 &

6. 优化事项

经过以上的过程,咱们现已拥有了一个私家的 ChatGPT 网站,只需你不对外推行,大概率就不会被 Q

拉起网站后,引荐再做一些优化:

  • 域名拜访:购买一个域名,运用 nginx 进行反向署理
  • 进程看护:能够运用 systemd 或 supervisord来看护进程

不过因为我是内部小规模运用,并没有对外推行的打算,因而直接运用 ip+端口的方法进行拜访,也省下了买域名的费用。

其他地址

  • Token 查询:platform.openai.com/tokenizer
  • /post/720624…