精品软件与实用教程
使用免费的AWS EC2服务器,搭建 ChatGPT网页版 的Web服务端
ChatGPT网页版 搭建教程,ChatGPT已经风靡全球,人工智能的热度已经势不可挡,OpenAI最近推出了GPT-4,ChatGPT风头正旺,伴随着猛增的用户,似乎GPU开始告急了,OpenAI大面积封了一批违规帐户,包括一些购买高级版的帐户也在封杀之内。当然被封杀的都是违规帐户,正常帐户的访问还是不受影响的。
下面教你如何使用亚马逊云的免费云服务器来搭建一个ChatGPT的网页版服务端。
在搭建之前,你需要满足下列条件。
- 亚马逊云免费帐户,在AWS中创建免费云服务器
- OpenAI帐号,用来申请OpenAI API
亚马逊云 Amazon AWS 免费服务器
在搭建ChatGPT服务端之前,了解一下Amazon EC2和Amazon Lightsail。
亚马逊云科技官网:https://www.amazonaws.cn
亚马逊云海外官网:https://aws.amazon.com/cn/
可以根据自身需求选择使用,一般新手测试推荐使用Amazon Lightsail,稳定生产环境建议使用Amazon EC2。
亚马逊云注册过程之前有做过详细介绍,这里就不重复了。
下面简单介绍Amazon EC2和Amazon Lightsail。
什么是Amazon EC2
Amazon EC2 亚马逊弹性云计算,是由亚马逊公司提供的Web服务,是一个让用户可以租用云端电脑运行所需应用的系统。EC2借由提供Web服务的方式让用户可以弹性地运行自己的Amazon机器映像档,用户将可以在这个虚拟机上运行任何自己想要的软件或应用程序。
Amazon EC2 的免费套餐: 第一年包括每月免费套餐 AMI 上的 750 小时 t2.micro(在 t2.micro 不可用的区域中则为 t3.micro)实例使用量、30GiB EBS 存储、200 万个输入和输出、1GB 快照,以及 100GB 互联网带宽。
申请亚马逊云Amazon EC2参考:免费申请亚马逊 AWS EC2 免费云服务器
t2.micro 的配置是1vCPU和1GiB内存,在AWS的香港区可以申请到t3.micro,配置要比t2.micro多一个vCPU。
在AWS中,还有一种创建免费服务器的方法,比较适合新手使用,使用Amazon Lightsail快速创建Linux服务器。
什么是 Amazon Lightsail?
Amazon Lightsail 是 Amazon Web Services ( AWS ) 提供的一项云服务,它为新的或经验不足的云用户捆绑了云计算能力和内存。
AWS 将内存、处理、存储和传输打包到虚拟机 ( VM ) 中供客户购买,然后将该计算容量作为 Amazon Elastic Compute Cloud (EC2) 实例发布。Amazon Lightsail 的计算能力来自 EC2 实例。Amazon EC2是一种 Web 服务,可在云中提供安全、可配置的计算能力。
AWS 设计了 Lightsail 服务,使其易于理解和购买。供应商管理基础设施,它与 EC2共享相同的正常运行时间和全球区域和可用性区域。
使用亚马逊光帆创建Linux服务器相对比较简单,不但可以创建Linux,还可以将应用直接安装在系统中,美中不足的就是只有前三个月是免费的。
如果只是临时测试使用的话,使用Amazon Lightsail还可以,$10的服务器内存比EC2多出1个G,硬盘多出30G
申请Amazon Lightsail参考:Lightsail 十分钟免费创建亚马逊云桌面
Amazon EC2 和 Amazon Lightsail 之间有什么区别?
AWS 提供用于托管应用程序的Amazon EC2和Lightsail 。Amazon EC2 是多种服务的混合体,具有用于创建单一架构的自己的个性化功能。Amazon EC2 实例适用于小型到复杂的架构。另一方面,Lightsail 是 AWS 提供的服务的集成产品。Lightsail 更适合中小型工作负载。
Amazon EC2 和 Lightsail 之间的主要区别:https://repost.aws/knowledge-center/lightsail-differences-from-ec2
注意:通过 AWS 免费套餐,您可以免费亲自体验一系列 AWS 服务。在创建 AWS 账户时,您将自动注册为期 12 个月的 AWS 免费套餐。您的 AWS 免费套餐使用资格将于 12 个月的期限结束时到期。在您的 AWS 免费套餐到期后,AWS 将按正常费率开始对您使用的任何 AWS 服务和资源进行收费。
AWS创建EC2服务器
下面以Amazon EC2 实例为例,创建Linux系统。
注册完亚马逊云之后,登录AWS控制台,在右上角的区域菜单中,拉到最下面,点击管理区域
点击启用亚太地区(香港)启用有些延迟,需要稍等几分钟,等待启用成功后再进行EC2服务器创建。
香港区启用成功后,在控制台左侧的服务菜单中,点击计算,在计算菜单下面,点击EC2,进入到EC2创建页面。
在EC2中点击实例,然后在实例中点击启动实例。下面我们选择创建一个Red Hat操作系统的Linux实例。
注意:只有香港区才有t3.micro,在选择操作系统和实例类型的过程中,一定要选择符合条件的免费套餐,如果没有支持免费套餐的标识,创建后会按天计费,满一个月后会自动从卡中扣钱。这一点一定要注意。
选择好操作系统和实例类型后,在密钥对选项中点击创建新密钥对
密钥对是用来连接远程服务器的。Red Hat操作系统密钥对的私钥文件格式选择.ppk
密钥对创建成功之后,配置一下防火墙,勾选允许来自互联网的https和http流量两个选项。存储配置将硬盘修改为30GiB。
注意只有通用型SSD或磁存储的硬盘才是免费套餐之内的,选择其它类型的需要付费。
选择完毕后,点击右侧的橘红色按钮,启动实例。EC2服务器实例就已经创建完毕了。
接下来在网络与安全中点击弹性IP,创建一个弹性IP,绑定在服务器上就可以了,弹性IP是免费的,如果不申请弹性IP的话,重新启动服务器后,公共IP地址就会随机换成其它的IP地址。
注意:弹性IP申请之后,一定要绑定在服务器上,弹性IP如果不进行绑定,闲置弹性IP是按小时收费的。
免费服务器已经申请OK了,下面开始申请OpenAI帐号,用来申请OpenAI API
注册OpenAI 申请OpenAI API
OpenAI的注册很多人都卡在了IP这一步,国内用户现在访问chat.openai.com 直接就是无法访问此网站。
OpenAI 屏蔽了中国地区的IP,包括香港,还有俄罗斯。
使用代理访问,有时会提示错误:Access denied
Access denied
You do not have access to chat.openai.com.The site owner may have set restrictions that prevent you from accessing the site.
遇到这样的问题怎么办?除了使用Proton VPN外,有一款海外的浏览器可以解决IP被限制的问题。
一款叫 biuChrome 的 Chrome 浏览器,下载地址:https://biuchrome.com/
使用biuChrome帮您解锁海外网站,解除地域限制,免费,无需注册,一键连接。
这是Chrome的开发版,可以直接访问ai.com
接下来,我们开始注册OpenAI帐户。
使用biuChrome浏览器访问:https://AI.com
使用Google帐户或者Microsoft帐户进行注册。建议使用微软帐户,毕竟是OpenAI的金主baba。
勾选确认您是真人,进行验证,验证之后,输入你的姓名,尽量编写一个美国人名,然后选择出生年月日。
名字输入之后,需要验证电话号码。
注意:你使用哪个地区的节点,就使用哪个地区的电话号码进行验证。以免被当成违规帐号封掉。
使用国外接码平台 SMS-Activate
SMS-Activate 是俄罗斯的一个付费接码平台,网站使用过程还算简便。初次上手对于小白用户来说,可能会遇到一些问题,下面给大家介绍 SMS-Activate 的接码过程。
国外接码平台 SMS-Activate 注册帐号
在网站的右上角将语言切换成中文,然后进行接码。
左侧选择OpenAI,选择对应的国家后面的购物车,将接码页面的电话号码,输入到上面OpenAI的验证电话号码的页面中。
如果一个号码长时间无法收到短信的话,多尝试几个号码进行接码。
输入验证码后,登录到ChatGPT界面。
如果你需要OpenAI API对外提供服务,或者希望使用更快的响应速度,可以升级Plus增强版,每月$20
获取OpenAI API 密钥
OpenAI 帐户注册成功后,访问:https://platform.openai.com/
点击右上角登录,输入之前注册的用户名和密码登录OpenAI用户界面,在用户界面中点击右上角帐户名称,在帐户名称下面的菜单中点击View API keys
或者通过页面直接访问:Account API Keys - OpenAI API
点击+Create new secret key 创建OpenAI API
注意:密钥只显示一次,创建API密钥后,点击复制。在桌面新建记事本,将密钥保存在记事本中。
密钥是有使用期限的,过期失效,OpenAI提供了$5的免费测试金。
AWS EC2 免费云服务器和OpenAI API已经申请完毕了,接下来进行ChatGPT的服务端搭建。
搭建 ChatGPT网页版 服务端
ChatGPT的Web UI 在GitHub上项目比较多,各种各样的ChatGPT项目让你看的眼花缭乱。使用最简单的方式在亚马逊云服务器上部署ChatGPT的服务端。
下面开始搭建基于ChatGPT3.5 API实现的私有化web程序,选用GitHub上比较火的一个chatgpt-web项目。
GitHub项目地址:https://github.com/Chanzhaoyu/chatgpt-web
SSH远程连接上面我们申请的EC2免费云服务器。
AWS服务器配置,请参考:AWS 亚马逊云 Red Hat 9 WEB服务器搭建 配置LNMP环境教程
先安装chatgpt-web运行需要的基础环境。
安装 Node
安装 Node v16 版本,node 需要 ^16 || ^18 || ^19 版本(node >= 14 需要安装 fetch polyfill),可以使用 nvm 可管理本地多个 node 版本。
cd /usr/local wget https://npmmirror.com/mirrors/node/v16.18.1/node-v16.18.1-linux-x64.tar.xz
解压重命名到 nodejs
tar -xvf node-v16.18.1-linux-x64.tar.xz mv node-v16.18.1-linux-x64 nodejs rm -rf node-v16.18.1-linux-x64.tar.xz
创建nodejs软连接
ln -s /usr/local/nodejs/bin/node /usr/bin ln -s /usr/local/nodejs/bin/npm /usr/bin ln -s /usr/local/nodejs/bin/npx /usr/bin
最后查看版本
node -v
如果返回版本号“v16.18.1”,安装成功!
安装 PNPM
安装 PNPM 并创建软连接
npm install -g pnpm ln -s /usr/local/nodejs/bin/pnpm /usr/bin ln -s /usr/local/nodejs/bin/pnpx /usr/bin
查看版本
pnpm -v
安装 Docker
dnf install -y yum-utilss
设置阿里云镜像
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf makecache
安装 docker-ce(社区版)
dnf install docker-ce docker-ce-cli containerd.io
查看版本
docker version
启动 Docker
systemctl start docker
设置开机启动Docker
systemctl enable docker
下载chatgpt-web项目
首先安装 git 命令
dnf install git
使用git命令拉取项目,将项目克隆到服务器上。
git clone https://github.com/Chanzhaoyu/chatgpt-web.git
进入到chatgpt-web/service/ 目录下修改配置文件
cd chatgpt-web/service/
将目录下文件.env.example 改名为.env
注意:.env是Linux系统中的隐藏文件,需要使用 ls -a 命令查看
使用CP命令将文件.env.example 改名为.env
cp .env.example .env
使用VI命令编辑.env
vi .env
在OPENAI_API_KEY=的后面填写OpenAI API,不要使用双引号,直接粘贴即可。
安装项目所需依赖
在chatgpt-web/service/目录下安装后端依赖
pnpm install
后端依赖安装完毕后,使用CD命令,切换到chatgpt-web/目录下安装前端依赖
pnpm bootstrap
依赖安装完毕后,测试依赖安装是否成功
后端服务,进入文件夹 /service 运行以下命令
pnpm start
前端服务,在chatgpt-web目录下
pnpm dev
环境变量
API 可用:
- OPENAI_API_KEY 和 OPENAI_ACCESS_TOKEN 二选一
- OPENAI_API_MODEL 设置模型,可选,默认:gpt-3.5-turbo
- OPENAI_API_BASE_URL 设置接口地址,可选,默认:https://api.openai.com
- OPENAI_API_DISABLE_DEBUG 设置接口关闭 debug 日志,可选,默认:empty 不关闭
ACCESS_TOKEN 可用:
- OPENAI_ACCESS_TOKEN 和 OPENAI_API_KEY 二选一,同时存在时,OPENAI_API_KEY 优先
- API_REVERSE_PROXY 设置反向代理,可选,默认:https://bypass.churchless.tech/api/conversation,社区(注意:只有这两个是推荐,其他第三方来源,请自行甄别)
通用:
- AUTH_SECRET_KEY 访问权限密钥,可选
- MAX_REQUEST_PER_HOUR 每小时最大请求次数,可选,默认无限
- TIMEOUT_MS 超时,单位毫秒,可选
- SOCKS_PROXY_HOST 和 SOCKS_PROXY_PORT 一起时生效,可选
- SOCKS_PROXY_PORT 和 SOCKS_PROXY_HOST 一起时生效,可选
- HTTPS_PROXY 支持 http,https, socks5,可选
- ALL_PROXY 支持 http,https, socks5,可选
biuchrome点击链接403,大神有安装包吗