使用免費的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,大神有安裝包嗎