ChatGPT-Plus 是使用官方ChatGPT API 的應用程式。
演示Demo / 回饋Issues / 開發Gitpod / 部署Vercel
簡體中文| English
喜歡這個項目嗎?請幫忙點個Star ️
或分享給您的朋友,以幫助它得到改善!
ChatGPT-Plus 用戶端是官方ChatGPT API 的應用程式。該應用程式是對OpenAI 的ChatGPT的官方API 的封裝應用。
提供兩種方式進行訪問,要在Node.js 中使用此模組,您需要在兩種方法之間進行選擇:
方法 | 免費? | 健壯? | 品質? |
---|---|---|---|
ChatGPTAPI | 否 | ✅ 是 | ✅️ 真實的ChatGPT 模型 |
ChatGPTUnofficialProxyAPI | ✅ 是 | ☑️ 可能 | ✅ 真實的ChatGPT |
ChatGPTAPI
- 使用帶有官方OpenAI 聊天完成API(官方、強大的方法,但不免費)的gpt-3.5-turbo-0301
模型。您可以覆寫模型、完成參數和系統訊息,以完全自訂您的助手。
ChatGPTUnofficialProxyAPI
- 使用非官方代理伺服器以繞過Cloudflare 的方式存取ChatGPT 的後端API(使用真實的ChatGPT,比較輕量級,但依賴第三方伺服器且有速率限制)。
這兩種方法具有非常相似的API,因此在它們之間切換應該很簡單。
注意:我們強烈建議使用ChatGPTAPI
,因為它使用OpenAI 官方支援的API。在未來的發布版本中,我們可能會停止對ChatGPTUnofficialProxyAPI
的支援。
此請求原理採用的是chatgpt-api提供的功能模組.
你可以使用Gitpod 進行線上開發:
或克隆到本地開發,請按照以下步驟進行:
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
如果沒有git 環境,可以直接下載zip 包,解壓縮後進入專案目錄
本專案基於Node.js 進行開發,需要Node.js 14.0+ 環境。 Make sure you're using
node >= 18
sofetch
is available (ornode >= 14
if you install a fetch polyfill).
本專案使用的是OpenAI 官方提供的API,需要申請Api Key 和AccessToken
- OpenAI 官方註冊申請地址:https://platform.openai.com/,需要科學上網
- 透過其他方式取得
ApiKey
或AccessToken
點擊查看
申請成功後,將APIKey 和AccessToken 填寫到chatgpt-plus/service/.env
檔案中
建議使用VSCode 編輯器進行開發,安裝插件
ESLint
和Prettier
,並在設定中開啟Format On Save
配置連接埠和介面請求位址在根目錄.env 裡。 可直接複製根目錄下的.env.example 檔案進行修改,檔案名稱修改為.env)
環境變數名 | 預設值 | 說明 |
---|---|---|
PORT | 3000 | 連接埠 |
NEXT_PUBLIC_API_URL | http://localhost:3002 | 介面位址 |
可直接複製根目錄下的.env.example 檔案進行修改,檔案名稱修改為.env
# port
PORT = 3000
# api url
NEXT_PUBLIC_API_URL = http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
執行啟動成功後,可在瀏覽器開啟http://localhost:3000 查看效果
設定埠和ApiKey、AccessToken 在service 目錄下.env 裡
環境變數名 | 預設值 | 說明 |
---|---|---|
PORT | 3002 | 連接埠 |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | 代理商 |
TIMEOUT_MS | 60000 | 超時毫秒數 |
可直接複製service 目錄下的.env.example 檔案進行修改,檔案名稱修改為.env
# service/.env
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY =
# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN =
# Reverse Proxy default 'https://bypass.churchless.tech/api/conversation'
API_REVERSE_PROXY =
# timeout
TIMEOUT_MS = 100000
# enter the project directory
cd chatgpt-plus
# enter the service directory
cd service
# install dependency
npm install
# develop
npm run dev
運作啟動成功後,後端服務便可正常運作
使用Docker方式部署,需安裝Docker環境
使用docker-compose資料夾內的設定文件,進行拉取運行即可
使用Vercel進行部署,可一鍵部署
.env
檔案中的API_URL
為你的實際後端介面公網位址npm install
安裝依賴npm run build
打包代碼dist
資料夾內的檔案複製到你網站前端服务
的目錄下dist
資料夾npm run start
啟動服務service
資料夾npm install
安裝依賴npm run build
打包代碼service/dist
資料夾內的檔案複製到你網站后端服务
的目錄下service/dist
資料夾npm run start
啟動服務備註: 如果不想進行打包,可以直接複製
service
資料夾到伺服器上執行npm install
和npm run start
也可以啟動服務
您可以透過給予後端服務.env 設定OPENAI_API_KEY
鑰進行存取:
# R OpenAI API Key
OPENAI_API_KEY =
本專案使用的是OpenAI 官方提供的API,需要先申請OpenAI 帳號
您可以透過給予後端服務.env 設定OPENAI_ACCESS_TOKEN
存取權杖存取:
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
您需要從ChatGPT Web 應用程式取得一個OpenAI 存取權杖。您可以使用以下任何方法之一,這些方法需要一個email
和password
,並傳回一個存取權杖:
這些程式庫與使用電子郵件和密碼進行驗證的帳戶搭配使用(例如,它們不支援透過Microsoft / Google 進行身份驗證的帳戶)。
另外,您可以透過登入ChatGPT Web 應用程式並開啟https://chat.openai.com/api/auth/session
來手動取得accessToken
,該連結將傳回JSON 對象,其中包含您的accessToken
字串。
訪問令牌有效期為數天。
注意:使用反向代理將使您的訪問令牌暴露給第三方。這不會產生任何不利影響,但在使用此方法之前,請考慮風險。
您可以透過給後端服務.env 配置API_REVERSE_PROXY
代理程式位址來覆寫反向代理:
# Reverse Proxy
API_REVERSE_PROXY =
社群成員運作的已知反向代理包括:
反向代理URL | 作者 | 速率限制 | 最後檢查日期 |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | 5 req / 10 seconds by IP | 3/24/2023 |
https://api.pawan.krd/backend-api/conversation | @PawanOsman | 50 req / 15 seconds (~3 r/s) | 3/23/2023 |
註:目前不公佈反向代理工作方式的信息,以防止OpenAI 禁用訪問。
Q: 如果只使用前端頁面,哪裡改請求介面?
A: 根目錄下.env
檔案中的API_URL
欄位。
Q: 前端沒有打字機效果?
A: 一個可能原因是經過Nginx 反向代理,開啟了buffer,則Nginx 會嘗試從後端緩衝一定大小的資料再傳送給瀏覽器。請嘗試在反代參數後加入proxy_buffering off;
,然後重載Nginx。其他web server 設定同理。
感謝所有做過貢獻的人!
如果您覺得這個專案對您有幫助,可以幫忙點個Star ️,或分享給您的朋友,您的支持是我最大的動力!
MIT © zhpd