今天作者帶大家實現(xiàn)一個普通配置電腦即可運行的私有化ChatGPT,支持以下功能: 1.界面體驗與ChatGPT官方幾乎一樣。 2.支持多種開源模型,可以聊天、寫代碼、識別圖片內(nèi)容等。 3.支持文生圖。 4.支持麥克風語音輸入聊天。 5.支持自動朗讀回答結(jié)果。 6.支持聯(lián)網(wǎng)使用openai。 1.界面:open webui,8.1k star,界面漂亮,功能豐富,我們本次主要用它將其他各開源項目組合起來。 2.大模型:ollama,44.8k star,支持使用CPU運行多種開源大模型,部署超級簡單。 3.文生圖:stable diffusion,124k star,最強開源文生圖項目。 4.語音輸入:openai開源的whisper, 57.1k star,CPU可用,效果可與收費產(chǎn)品比肩。 5.文本朗讀:windows系統(tǒng)提供的接口,離線免費使用,后面有介紹。 6.接入openai:GPT_API_free, 13.3k star,免費的openai API key。 下面只有前兩步為必須執(zhí)行的,后面步驟根據(jù)自己需求決定是否執(zhí)行。 1.部署大模型參考上篇文章43.7k star! 輕松在本地運行Llama2、Gemma等多種大模型,無需GPU!完成第一步操作即可,ollama支持多種優(yōu)秀開源大模型,可根據(jù)需求多下載幾種,按需使用,官方支持的模型:https:///library 2.部署界面open webui不僅是一個聊天界面,還是一個ollama的客戶端,還有很多其他功能,感興趣可以去github看官方文檔。使用docker一鍵部署: docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 安裝完成之后,瀏覽器輸入http://localhost:3000,選擇模型就可以開始聊天了。可以到設(shè)置界面的General中設(shè)置各種模型參數(shù),到這一步已經(jīng)實現(xiàn)一個基本的私有化ChatGPT了。 3.圖片識別先使用ollama下載llava模型,聊天時選擇llava,發(fā)送圖片即可。以下是作者測試的圖片識別效果,連后面有多排座位,有些座位是空的都能準確識別出來! 4.語音輸入如果想使用語音輸入功能,可以參考這篇文章部署whisper:54.3k star! 用openai開源的whisper部署自己的語音識別系統(tǒng)。部署好之后,將STT引擎改為whisper(Local),在聊天輸入框就可以點擊麥克風圖標輸入語音了。 5.文生圖先本地部署stable diffusion(以下簡稱sd):AI繪畫教程之stable diffusion【2.Windows系統(tǒng)本地部署】 說明:sd需要GPU,但我看sd官方文檔好像支持CPU,作者未驗證。 接下來坑比較多,作者已解決,照做即可。 set COMMANDLINE_ARGS=--api 如圖所示:
5.3 雙擊webui.bat啟動sd,進入open-webui的設(shè)置頁面,按下圖設(shè)置,注意:因為open-webui是在docker部署的,sd是在宿主機部署,open-webui調(diào)用sd接口相當于docker內(nèi)部調(diào)用宿主機服務(wù),所以在瀏覽器雖然用127.0.0.1:7860能訪問sd,但是這里填寫127.0.0.1是無法請求的,按圖示內(nèi)容填寫,如果您的部署方式和作者不一樣,請根據(jù)情況填寫。 5.4 生成圖片的按鈕只在大模型回復的內(nèi)容下面才會出現(xiàn),并且會把回復的內(nèi)容當成sd的prompt,因此想生成圖片需要先選擇一個模型,讓模型把你想使用的promt回復給你,然后點擊生成圖片按鈕,就可以生成了。 6.使用openai接口感覺本地模型運行慢,有時候想用在線的OpenAI接口?沒問題!可以參照這篇獲取免費的API Key:13k star! 獲取免費ChatGPT API Key的開源項目,親測可用!然后按照下圖配置。 配置后,模型選擇列表中就會自動多出來幾個openai模型,選擇即可使用。 7.文本朗讀功能按下圖設(shè)置即可開啟朗讀功能,聊天時收到完整響應后會自動朗讀。 關(guān)于文本朗讀的實現(xiàn)原理,前幾天寫了一篇免費使用TTS的文章:2.8k star! 用開源免費的edge-tts平替科大訊飛的語音合成服務(wù),作者以為這個也應該是調(diào)用了某個在線的TTS服務(wù),但是在console中看不到任何關(guān)于TTS的請求,后來查看源碼才發(fā)現(xiàn)是用HTML5的Speech Synthesis API實現(xiàn)的,這個API可以調(diào)用Windows系統(tǒng)的TTS。以下是代碼,可直接在瀏覽器的console中運行測試。
以下是測試截圖: 利用這個API可以實現(xiàn)免費、離線的TTS功能。 |
|
來自: 蒙rrpigqpq6iim > 《文件夾1》