基于開源的 ChatGPT Web UI 項目,快速構建屬于自己的 ChatGPT 站點
作為一個技術博主,了不起比較喜歡各種折騰,之前給大家介紹過 ChatGPT? 接入微信,釘釘和知識星球(如果沒看過的可以翻翻前面的文章),最近再看開源項目的時候,發現了一個 ChatGPT Web UI 項目。
想著剛好之前沒有將 ChatGPT? 接入過 Web UI,有了這個開源項目可以拿來使用,真是不錯,下面是實操的安裝步驟,分享給大家。
安裝
官方在 Github? 的項目文檔上提供了很多中的安裝方式,包括手動安裝,docker? 部署,以及遠程部署等方法,了不起在選擇部署方式的時候,一開始為了簡單想著直接使用 docker? 部署就好,可是誰想到在服務器上面部署好了過后,在網站設置登錄賬號密碼后一直會Connection errored out 的問題。
經過翻閱官方的 issue? ,看到很多人都有一樣的問題,根據 issue? 中提供的方式,通過修改 dockerfile? 最終才解決了這個問題。同時為了修改一些頁面的標題所以決定 fork 源碼,然后自己重新打包鏡像的方式來部署。
下載源碼
首先我們將 Github? 中的源碼倉庫 fork? 一下,然后再將自己的倉庫克隆下來,git clone https://github.com/自己的 github 賬號/chatgpt-web.git,
下載完成過后,我們進入到項目的目錄中,然后進行依賴的安裝,命令如下
這一步的時候我們可能會出現一些問題,如下所示
- pip? 不存在:這種的話需要先安裝 Python 環境,這里不過多介紹;
- ERROR: No matching distribution found for tiktoken (from -r requirements.txt (line 4)):這種是自己的 pip 鏡像中不存在相關依賴的包,需要更換鏡像
- 官方提供了一個常見問題的清單,可以參考解決官方提供的一個常見問題列表來進行解決。
正常來說遇到相關問題都可以解決,了不起這邊就遇到了第二個問題,參照更換鏡像的方式解決了,不過環境不同遇到的問題也不相同,大家可以自己排查一下。
源碼部署
首先我們嘗試一下,在不修改源碼的情況下,使用 docker 在服務器上面部署,看看會有什么效果。我們在服務器上面下載完源碼過后,進入到目錄中,然后進行鏡像打包
接著我們通過 docker images? 查看下 docker 的鏡像,如下
接下來我們通過 docker? 來運行 chatgpt-web 這個容器,執行如下命令
然后我們打開瀏覽器,通過 ip 和端口直接訪問,效果如下,先登錄,輸入上面命令中的賬號和密碼
然后就可以進入到系統內部,但是當我們嘗試去測試 ChatGPT 的時候,會發現在右上角報錯了,提示無法鏈接。
在官方的置頂 issue 里面,我們可以看到有很多小伙伴也遇到了這個問題,
最終后大佬分析出來是因為在啟用賬號和密碼認證的情況下,用 ip 直接訪問的時候獲取到的 token 有錯誤,導致無法使用。
修改源碼
找到問題所在過后,也就可以解決問題,在同一個 issue 下面就有人提到如果要在外網部署,要修改的是 Dockerfile? 文件,在里面 CMD 命令前面加上如下一行
RUN sed -i 's/websocket\.cookies\.get("access-token")/websocket.cookies.get("access-token-unsecure")/' /root/.local/lib/python3.9/site-packages/gradio/routes.py
之所以要加上這一行是因為在服務器上面部署的時候拿不到正確的 token?,而這一行的命令是通過 sed? 命令將 routes.py? 腳本中的 access_token_unsecure? 替換成 access_token? 從而獲取到認證的 token。
那么接下來我們修改一下 Dockerfile ,然后重新構建一個新的鏡像,再進行啟動,觀察是否可以解決。
通過 vim Dockerfile 命令修改,然后再構建一個新的鏡像
可以看到,這里我們有兩個鏡像了,雖然名子一樣,但是對應的 TAG 是不一樣的,
同樣進行登錄過后,我們會發現這次正常了,可以愉快的進行玩耍了。
調戲
首先我們可以在官方的 Prompt 模板中選擇一個好玩的,里面包含的模板有很多。
比如我們可以讓 ChatGPT? 充當一個 SQL? 終端,然后幫我們執行 SQL 語句。
怎么樣是不是很神奇?還有很多有趣的模板可以選擇,也可以自己設定一個符合自己工作或者學習的 Prompt? 來進行 AI 的調戲。同時因為我們是基于源碼手動進行構建鏡像的,可以把一些內容換成自己的,或者自行進行一些二次開發都是可以的。
總結
前面的文章給大家接入了如何接入微信,釘釘以及知識星球,今天的文章教大家如何構建一個屬于自己的 ChatGPT? 平臺,對于 ChatGPT 這種劃時代的產品,在這么短的時間里面已經風靡全球了,各種互聯網公司都投入大模型的研究,更有很多 AI 領域的人都開啟了創業之旅,比如王慧文,李開復等。