非?;鸨腁 well-designed cross-platform ChatGPT UI (Web / PWA / Linux / Win / MacOS). 一鍵擁有你自己的跨平臺 ChatGPT 應(yīng)用。
這個開源項(xiàng)目可以做到一鍵免費(fèi)部署你的私人 ChatGPT 網(wǎng)頁應(yīng)用。如果部署Vercel,Vercel可以綁定自己的域名,或者配合Cloudflare自定義域名中轉(zhuǎn),應(yīng)該可以讓國內(nèi)訪問。
主要功能
在 1 分鐘內(nèi)使用 Vercel 免費(fèi)一鍵部署
提供體積極小(~5MB)的跨平臺客戶端(Linux/Windows/MacOS), 下載地址
完整的 Markdown 支持:LaTex 公式、Mermaid 流程圖、代碼高亮等等
精心設(shè)計的 UI,響應(yīng)式設(shè)計,支持深色模式,支持 PWA
極快的首屏加載速度(~100kb),支持流式響應(yīng)
隱私安全,所有數(shù)據(jù)保存在用戶瀏覽器本地
預(yù)制角色功能(面具),方便地創(chuàng)建、分享和調(diào)試你的個性化對話
海量的內(nèi)置 prompt 列表,來自中文和英文
自動壓縮上下文聊天記錄,在節(jié)省 Token 的同時支持超長對話
多國語言支持:English, 簡體中文, 繁體中文, 日本語, Espa?ol, Italiano, Türk?e, Deutsch, Ti?ng Vi?t, Русский, ?e?tina
擁有自己的域名?好上加好,綁定后即可在任何地方無障礙快速訪問
開始使用
準(zhǔn)備好你的 OpenAI API Key;
點(diǎn)擊右側(cè)按鈕開始部署: Deploy with Vercel,直接使用 Github 賬號登錄即可,記得在環(huán)境變量頁填入 API Key 和頁面訪問密碼 CODE;
部署完畢后,即可開始使用;
(可選)綁定自定義域名:Vercel 分配的域名 DNS 在某些區(qū)域被污染了,綁定自定義域名即可直連。
配置頁面訪問密碼
配置密碼后,用戶需要在設(shè)置頁手動填寫訪問碼才可以正常聊天,否則會通過消息提示未授權(quán)狀態(tài)。
警告:請務(wù)必將密碼的位數(shù)設(shè)置得足夠長,最好 7 位以上,否則會被爆破。
本項(xiàng)目提供有限的權(quán)限控制功能,請在 Vercel 項(xiàng)目控制面板的環(huán)境變量頁增加名為 CODE 的環(huán)境變量,值為用英文逗號分隔的自定義密碼:
code1,code2,code3
增加或修改該環(huán)境變量后,請重新部署項(xiàng)目使改動生效。
環(huán)境變量
本項(xiàng)目大多數(shù)配置項(xiàng)都通過環(huán)境變量來設(shè)置,教程:如何修改 Vercel 環(huán)境變量。
OPENAI_API_KEY (必填項(xiàng))
OpanAI 密鑰,你在 openai 賬戶頁面申請的 api key。
CODE (可選)
訪問密碼,可選,可以使用逗號隔開多個密碼。
警告:如果不填寫此項(xiàng),則任何人都可以直接使用你部署后的網(wǎng)站,可能會導(dǎo)致你的 token 被急速消耗完畢,建議填寫此選項(xiàng)。
BASE_URL (可選)
Default: https://api.openai.com
Examples: http://your-openai-proxy.com
OpenAI 接口代理 URL,如果你手動配置了 openai 接口代理,請?zhí)顚懘诉x項(xiàng)。
如果遇到 ssl 證書問題,請將 BASE_URL 的協(xié)議設(shè)置為 http。
OPENAI_ORG_ID (可選)
指定 OpenAI 中的組織 ID。
HIDE_USER_API_KEY (可選)
如果你不想讓用戶自行填入 API Key,將此環(huán)境變量設(shè)置為 1 即可。
DISABLE_GPT4 (可選)
如果你不想讓用戶使用 GPT-4,將此環(huán)境變量設(shè)置為 1 即可。
HIDE_BALANCE_QUERY (可選)
如果你不想讓用戶查詢余額,將此環(huán)境變量設(shè)置為 1 即可。
部署
容器部署 (推薦)
Docker 版本需要在 20 及其以上,否則會提示找不到鏡像。
?? 注意:docker 版本在大多數(shù)時間都會落后最新的版本 1 到 2 天,所以部署后會持續(xù)出現(xiàn)“存在更新”的提示,屬于正?,F(xiàn)象。
docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=頁面訪問密碼 \
yidadaa/chatgpt-next-web
你也可以指定 proxy:
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=頁面訪問密碼 \
--net=host \
-e PROXY_URL=http://127.0.0.1:7890 \
yidadaa/chatgpt-next-web
如果你的本地代理需要賬號密碼,可以使用:
-e PROXY_URL="http://127.0.0.1:7890 user password"
如果你需要指定其他環(huán)境變量,請自行在上述命令中增加 -e 環(huán)境變量=環(huán)境變量值 來指定。
本地部署
在控制臺運(yùn)行下方命令:
bash <(curl -s https://raw.githubusercontent.com/Yidadaa/ChatGPT-Next-Web/main/scripts/setup.sh)
?? 注意:如果你安裝過程中遇到了問題,請使用 docker 部署。
Vercel 的使用說明
如何新建項(xiàng)目
當(dāng)你從 Github fork 本項(xiàng)目之后,需要重新在 Vercel 創(chuàng)建一個全新的 Vercel 項(xiàng)目來重新部署,你需要按照下列步驟進(jìn)行。
進(jìn)入 Vercel 控制臺首頁;
點(diǎn)擊 Add New;
選擇 Project。
在 Import Git Repository 處,搜索 chatgpt-next-web;
選中新 fork 的項(xiàng)目,點(diǎn)擊 Import。
在項(xiàng)目配置頁,點(diǎn)開 Environmane Variables 開始配置環(huán)境變量;
依次新增名為 OPENAI_API_KEY 和 CODE (訪問密碼) 的環(huán)境變量;
填入環(huán)境變量對應(yīng)的值;
點(diǎn)擊 Add 確認(rèn)增加環(huán)境變量;
請確保你添加了 OPENAI_API_KEY,否則無法使用;
點(diǎn)擊 Deploy,創(chuàng)建完成,耐心等待 5 分鐘左右部署完成。
如何增加自定義域名
[TODO]
如何更改環(huán)境變量
進(jìn)去 Vercel 項(xiàng)目內(nèi)部控制臺,點(diǎn)擊頂部的 Settings 按鈕;
點(diǎn)擊左側(cè)的 Environment Variables;
點(diǎn)擊已有條目的右側(cè)按鈕;
選擇 Edit 進(jìn)行編輯,然后保存即可。
??? 注意:每次修改完環(huán)境變量,你都需要重新部署項(xiàng)目來讓改動生效!
如何重新部署
進(jìn)入 Vercel 項(xiàng)目內(nèi)部控制臺,點(diǎn)擊頂部的 Deployments 按鈕;
選擇列表最頂部一條的右側(cè)按鈕;
點(diǎn)擊 Redeploy 即可重新部署。
常見問題
如何快速獲得幫助?
詢問 ChatGPT / Bing / 百度 / Google 等。
詢問網(wǎng)友。請?zhí)峁﹩栴}的背景信息和碰到問題的詳細(xì)描述。高質(zhì)量的提問容易獲得有用的答案。
部署相關(guān)問題
各種部署方式詳細(xì)教程參考:https://rptzik3toh.feishu.cn/docx/XtrdduHwXoSCGIxeFLlcEPsdn8b
為什么 Docker 部署版本一直提示更新
Docker 版本相當(dāng)于穩(wěn)定版,latest Docker 總是與 latest release version 一致,目前我們的發(fā)版頻率是一到兩天發(fā)一次,所以 Docker 版本會總是落后最新的提交一到兩天,這在預(yù)期內(nèi)。
如何部署在 Vercel 上
注冊 Github 賬號,fork 該項(xiàng)目
注冊 Vercel(需手機(jī)驗(yàn)證,可以用中國號碼),連接你的 Github 賬戶
Vercel 上新建項(xiàng)目,選擇你在 Github fork 的項(xiàng)目,按需填寫環(huán)境變量,開始部署。部署之后,你可以在有梯子的條件下,通過 vercel 提供的域名訪問你的項(xiàng)目。
如果需要在國內(nèi)無墻訪問:在你的域名管理網(wǎng)站,添加一條域名的 CNAME 記錄,指向 cname.vercel-dns.com。之后在 Vercel 上設(shè)置你的域名訪問。
如何修改 Vercel 環(huán)境變量
進(jìn)入 vercel 的控制臺頁面;
選中你的 chatgpt next web 項(xiàng)目;
點(diǎn)擊頁面頭部的 Settings 選項(xiàng);
找到側(cè)邊欄的 Environment Variables 選項(xiàng);
修改對應(yīng)的值即可。
環(huán)境變量 CODE 是什么?必須設(shè)置嗎?
這是你自定義的訪問密碼,你可以選擇:
不設(shè)置,刪除該環(huán)境變量即可。謹(jǐn)慎:此時任何人可以訪問你的項(xiàng)目。
部署項(xiàng)目時,設(shè)置環(huán)境變量 CODE(支持多個密碼逗號分隔)。設(shè)置訪問密碼后,用戶需要在設(shè)置界面輸入訪問密碼才可以使用。參見相關(guān)說明
為什么我部署的版本沒有流式響應(yīng)
相關(guān)討論:#386
如果你使用 nginx 反向代理,需要在配置文件中增加下列代碼:
不緩存,支持流式輸出
proxy_cache off; # 關(guān)閉緩存
proxy_buffering off; # 關(guān)閉代理緩沖
chunked_transfer_encoding on; # 開啟分塊傳輸編碼
tcp_nopush on; # 開啟TCP NOPUSH選項(xiàng),禁止Nagle算法
tcp_nodelay on; # 開啟TCP NODELAY選項(xiàng),禁止延遲ACK算法
keepalive_timeout 300; # 設(shè)定keep-alive超時時間為65秒
如果你是在 netlify 部署,此問題依然等待解決,請耐心等待。
我部署好了,但是無法訪問
請檢查排除以下問題:
服務(wù)啟動了嗎?
端口正確映射了嗎?
防火墻開放端口了嗎?
到服務(wù)器的路由通嗎?
域名正確解析了嗎?
什么是代理,如何使用?
由于 OpenAI 的 IP 限制,中國和其他一些國家/地區(qū)無法直接連接 OpenAI API,需要通過代理。你可以使用代理服務(wù)器(正向代理),或者已經(jīng)設(shè)置好的 OpenAI API 反向代理。
正向代理例子:科學(xué)上網(wǎng)梯子。docker 部署的情況下,設(shè)置環(huán)境變量 HTTP_PROXY 為你的代理地址(例如:10.10.10.10:8002)。
反向代理例子:可以用別人搭建的代理地址,或者通過 Cloudflare 免費(fèi)設(shè)置。設(shè)置項(xiàng)目環(huán)境變量 BASE_URL 為你的代理地址。
國內(nèi)服務(wù)器可以部署嗎?
可以但需要解決的問題:
需要代理才能連接 github 和 openAI 等網(wǎng)站;
國內(nèi)服務(wù)器要設(shè)置域名解析的話需要備案;
國內(nèi)政策限制代理訪問外網(wǎng)/ChatGPT 相關(guān)應(yīng)用,可能被封。
為什么 docker 部署后出現(xiàn)網(wǎng)絡(luò)錯誤?
詳見討論:#1569
使用相關(guān)問題
為什么會一直提示“出錯了,稍后重試吧”
原因可能有很多,請依次排查:
請先檢查你的代碼版本是否為最新版本,更新到最新版本后重試;
請檢查 api key 是否設(shè)置正確,環(huán)境變量名稱必須為全大寫加下劃線;
請檢查 api key 是否可用;
如果經(jīng)歷了上述步驟依舊無法確定問題,請在 issue 區(qū)提交一個新 issue,并附上 vercel 的 runtime log 或者 docker 運(yùn)行時的 log。
為什么 ChatGPT 的回復(fù)會亂碼
設(shè)置界面 - 模型設(shè)置項(xiàng)中,有一項(xiàng)為 temperature,如果此值大于 1,那么就有可能造成回復(fù)亂碼,將其調(diào)回 1 以內(nèi)即可。
使用時提示“現(xiàn)在是未授權(quán)狀態(tài),請在設(shè)置頁輸入訪問密碼”?
項(xiàng)目通過環(huán)境變量 CODE 設(shè)置了訪問密碼。第一次使用時,需要到設(shè)置中,輸入訪問碼才可以使用。
使用時提示 “You exceeded your current quota, …”
API KEY 有問題。余額不足。
使用時遇到 “Error: Loading CSS chunk xxx failed…”
為了減少首屏白屏?xí)r間,默認(rèn)啟用了分塊編譯,技術(shù)原理見下:
https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading
https://stackoverflow.com/questions/55993890/how-can-i-disable-chunkcode-splitting-with-webpack4
vercel/next.js#38507
https://stackoverflow.com/questions/55993890/how-can-i-disable-chunkcode-splitting-with-webpack4
然而 NextJS 的兼容性比較差,在比較老的瀏覽器上會導(dǎo)致此報錯,可以在編譯時關(guān)閉分塊編譯。
對于 Vercel 平臺,在環(huán)境變量中增加 DISABLE_CHUNK=1,然后重新部署即可; 對于自行編譯部署的項(xiàng)目,在構(gòu)建時使用 DISABLE_CHUNK=1 yarn build 構(gòu)建即可; 對于 Docker 用戶,由于 Docker 打包時已經(jīng)構(gòu)建完畢,所以暫不支持關(guān)閉此特性。
注意,關(guān)閉此特性后,用戶會在第一次訪問網(wǎng)站時加載所有資源,如果用戶網(wǎng)絡(luò)狀況較差,可能會引起較長時間的白屏,從而影響用戶使用體驗(yàn),所以自行考慮。
使用時遇到 “NotFoundError: Failed to execute ‘removeChild’ on ‘Node’: The node…”
請關(guān)閉瀏覽器自身的自動翻譯功能,并關(guān)閉所有自動翻譯插件。
網(wǎng)絡(luò)服務(wù)相關(guān)問題
Cloudflare 是什么?
Cloudflare(CF)是一個提供 CDN,域名管理,靜態(tài)頁面托管,邊緣計算函數(shù)部署等的網(wǎng)絡(luò)服務(wù)供應(yīng)商。常見的用途:購買和/或托管你的域名(解析、動態(tài)域名等),給你的服務(wù)器套上 CDN(可以隱藏 ip 免被墻),部署網(wǎng)站(CF Pages)。CF 免費(fèi)提供大多數(shù)服務(wù)。
Vercel 是什么?
Vercel 是一個全球化的云平臺,旨在幫助開發(fā)人員更快地構(gòu)建和部署現(xiàn)代 Web 應(yīng)用程序。本項(xiàng)目以及許多 Web 應(yīng)用可以一鍵免費(fèi)部署在 Vercel 上。無需懂代碼,無需懂 linux,無需服務(wù)器,無需付費(fèi),無需設(shè)置 OpenAI API 代理。缺點(diǎn)是需要綁定域名才可以在國內(nèi)無墻訪問。
如何獲得一個域名?
自己去域名供應(yīng)商處注冊,國外有 Namesilo(支持支付寶), Cloudflare 等等,國內(nèi)有萬網(wǎng)等等;
免費(fèi)的域名供應(yīng)商:eu.org(二級域名)等;
問朋友要一個免費(fèi)的二級域名。
如何獲得一臺服務(wù)器
國外服務(wù)器供應(yīng)商舉例:亞馬遜云,谷歌云,Vultr,Bandwagon,Hostdare,等等; 國外服務(wù)器事項(xiàng):服務(wù)器線路影響國內(nèi)訪問速度,推薦 CN2 GIA 和 CN2 線路的服務(wù)器。若服務(wù)器在國內(nèi)訪問困難(丟包嚴(yán)重等),可以嘗試套 CDN(Cloudflare 等供應(yīng)商)。
國內(nèi)服務(wù)器供應(yīng)商:阿里云,騰訊等; 國內(nèi)服務(wù)器事項(xiàng):解析域名需要備案;國內(nèi)服務(wù)器帶寬較貴;訪問國外網(wǎng)站(Github, openAI 等)需要代理。
什么情況下服務(wù)器要備案?
在中國大陸經(jīng)營的網(wǎng)站按監(jiān)管要求需要備案。實(shí)際操作中,服務(wù)器位于國內(nèi)且有域名解析的情況下,服務(wù)器供應(yīng)商會執(zhí)行監(jiān)管的備案要求,否則會關(guān)停服務(wù)。通常的規(guī)則如下:
服務(wù)器位置 域名供應(yīng)商 是否需要備案
國內(nèi) 國內(nèi) 是
國內(nèi) 國外 是
國外 國外 否
國外 國內(nèi) 通常否
換服務(wù)器供應(yīng)商后需要轉(zhuǎn)備案。
OpenAI 相關(guān)問題
如何注冊 OpenAI 賬號?
去 chat.openai.com 注冊。你需要:
一個良好的梯子(OpenAI 支持地區(qū)原生 IP 地址)
一個支持的郵箱(例如 Gmail 或者公司/學(xué)校郵箱,非 Outlook 或 qq 郵箱)
接收短信認(rèn)證的方式(例如 SMS-activate 網(wǎng)站)
怎么開通 OpenAI API? 怎么查詢 API 余額?
官網(wǎng)地址(需梯子):https://platform.openai.com/account/usage 有網(wǎng)友搭建了無需梯子的余額查詢代理,請詢問網(wǎng)友獲取。請鑒別來源是否可靠,以免 API Key 泄露。
我新注冊的 OpenAI 賬號怎么沒有 API 余額?
(4 月 6 日更新)新注冊賬號通常會在 24 小時后顯示 API 余額。當(dāng)前新注冊賬號贈送 5 美元余額。
如何給 OpenAI API 充值?
OpenAI 只接受指定地區(qū)的信用卡(中國信用卡無法使用)。一些途徑舉例:
Depay 虛擬信用卡
申請國外信用卡
網(wǎng)上找人代充
如何使用 GPT-4 的 API 訪問?
GPT-4 的 API 訪問需要單獨(dú)申請。到以下地址填寫你的信息進(jìn)入申請隊(duì)列 waitlist(準(zhǔn)備好你的 OpenAI 組織 ID):https://openai.com/waitlist/gpt-4-api 之后等待郵件消息。
開通 ChatGPT Plus 不代表有 GPT-4 權(quán)限,兩者毫無關(guān)系。
如何使用 Azure OpenAI 接口
請參考:#371
為什么我的 Token 消耗得這么快?
相關(guān)討論:#518
如果你有 GPT 4 的權(quán)限,并且日常在使用 GPT 4 api,那么由于 GPT 4 價格是 GPT 3.5 的 15 倍左右,你的賬單金額會急速膨脹;
如果你在使用 GPT 3.5,并且使用頻率并不高,仍然發(fā)現(xiàn)自己的賬單金額在飛快增加,那么請馬上按照以下步驟排查:
去 openai 官網(wǎng)查看你的 api key 消費(fèi)記錄,如果你的 token 每小時都有消費(fèi),并且每次都消耗了上萬 token,那你的 key 一定是泄露了,請立即刪除重新生成。不要在亂七八糟的網(wǎng)站上查余額。
如果你的密碼設(shè)置很短,比如 5 位以內(nèi)的字母,那么爆破成本是非常低的,建議你搜索一下 docker 的日志記錄,確認(rèn)是否有人大量嘗試了密碼組合,關(guān)鍵字:got access code
通過上述兩個方法就可以定位到你的 token 被快速消耗的原因:
如果 openai 消費(fèi)記錄異常,但是 docker 日志沒有問題,那么說明是 api key 泄露;
如果 docker 日志發(fā)現(xiàn)大量 got access code 爆破記錄,那么就是密碼被爆破了。
API 是怎么計費(fèi)的?
OpenAI 網(wǎng)站計費(fèi)說明:https://openai.com/pricing#language-models
OpenAI 根據(jù) token 數(shù)收費(fèi),1000 個 token 通常可代表 750 個英文單詞,或 500 個漢字。輸入(Prompt)和輸出(Completion)分別統(tǒng)計費(fèi)用。
模型 用戶輸入(Prompt)計費(fèi) 模型輸出(Completion)計費(fèi) 每次交互最大 token 數(shù)
gpt-3.5-turbo $0.0015 / 1 千 tokens $0.002 / 1 千 tokens 4096
gpt-3.5-turbo-16K $0.003 / 1 千 tokens $0.004 / 1 千 tokens 16384
gpt-4 $0.03 / 1 千 tokens $0.06 / 1 千 tokens 8192
gpt-4-32K $0.06 / 1 千 tokens $0.12 / 1 千 tokens 32768
gpt-3.5-turbo 和 gpt3.5-turbo-0301(或者 gpt3.5-turbo-mmdd)模型有什么區(qū)別?
官方文檔說明:https://platform.openai.com/docs/models/gpt-3-5文章來源:http://www.zghlxwxcb.cn/news/detail-771375.html
gpt-3.5-turbo 是最新的模型,會不斷得到更新。
gpt-3.5-turbo-0301 是 3 月 1 日定格的模型快照,不會變化,預(yù)期 3 個月后被新快照替代。文章來源地址http://www.zghlxwxcb.cn/news/detail-771375.html
到了這里,關(guān)于非?;鸨腃hatGPT 一鍵輕松擁有自己專屬的 ChatGPT 網(wǎng)頁服務(wù),支持跨平臺 ChatGPT 應(yīng)用 (Web / PWA / Linux / Win / MacOS)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!