-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /home/kevin/one-api:/data \
--restart always \
justsong/one-api

如果你不想丟失你后面辛苦設置的配置,就需要像上面掛載一個卷給它。當然如果你有一個 MySQL,將數據持久化給它是更棒的想法。你想試玩一下,上面就夠啦~

配置渠道和模型

部署完畢后,訪問所在機器的 3000 端口即可打開其 Web 頁面。使用管理員用戶 root 密碼 123456(看 docker 啟動日志可得)登錄后,就可以配置渠道了,這里的渠道可以理解為提供模型的平臺。你可以根據手上的資源來創建相應的渠道。如下圖是我創建的一個列表:

同時,我們可以給每個渠道設置它所提供的模型列表,如下圖:

需要注意清理一些你并不需要的模型,也可能需要手動錄入一些模型名。當模型調用和實際不一致時,可能稍麻煩點配置個重定向(在 azure openai 時或能用上)。多數時候密鑰填寫一個即可,像百度文心一言的密鑰需要如它提供所言,使用 APIKey|SecretKey 的方式,不要錯填。而部分模型如果需要訪問代理,也可以針對性的配置。

看起來這些配置還是挺合情合理的,每個都是有實打實用途。配置后想知道是否能正常,可以回到上面渠道頁點擊測試即可,順便還可以看一下訪問速度如何:)

當然,我相信每個模型的人手里都握了好多個 key,如果你沒有的話,國內隨便申請幾個玩一下,給你張機票順便求三連:

其中零一萬物注冊送 60 元,還是可以隨便玩一下的,智能程度還不錯:)遺憾的是騰訊混云大模型我還不能申請,要企業身份,希望早日開放吧~

添加專屬令牌

經過上面配置,我們渠道和模型已經準備好了,接下來就是獲得一個 Key 供使用。OneAPI 有個好處便是,你訪問各大模型的敏感信息如密鑰和賬戶都是在它上面配置。然后它可創建令牌給你用于在其它 Web 端填寫,甚至你可以放心的給朋友發送一個令牌,它有一個有效期和可設置費用情況。我們可以使用剛才的 root 賬戶創建,也可以另建一個賬戶創建令牌。

然后點復制會獲得你的 API Key。注意新的賬戶創建后是沒有錢的,你可以使用 root 用戶在兌換->添加新的兌換碼后生成一個兌換碼給剛才這個用戶,然后這個用戶去兌換即可。這雖然多了一兩步,但是很簡單的操作。

在 ChatGPT-Next-Web 使用

現在,你可以選擇一個自己喜歡的 chatgpt-Web 端來部署了,這里我推薦使用ChatGPT-Next-Web,主要原因是它支持隨便切換模型,并且通知啟動參數自定義模型列表。

docker run -d -p 3003:3000 \
-e OPENAI_API_KEY=<上面獲得的OneAPI sk-開頭的密鑰> \
-e BASE_URL=http://<你的OneAPI部署的地址>:3000 \
-e CUSTOM_MODELS=ERNIE-3.5-8K,Llama-2-70B-Chat,ERNIE-4.0-8K,Yi-34B-Chat,yi-34b-chat-0205,mistral,gemma,gemma-7b,gemma:7b \
yidadaa/chatgpt-next-web

我們可以從如下地方選擇切換模型,可以方便的和各處模型對話啦!

如果你有多個渠道提供了同一個模型,OneAPI 后端會自動作負載均衡,當然你也可以指定使用某個渠道。當我看到 OneAPI 的渠道還支持Ollama時,便知道本地模型也有機會統一進來啦~

加入免費本地模型

本地模型意味著量大管飽,看到 OneAPI 支持 Ollama 后,我便打開了臺式機的電源,我們一起試試看~

使用 Ollama 部署本地模型

如果你沒有使用過Ollama,那么容我簡單介紹兩句,不對,只需要一句:

Get up and running with large language models locally.

它支持蠻多的主流開源模型的,你可以在這里查到,我就不搬運啦!為了獲得較好的推理速度,你可能需要使用到 GPU 加速,我試過 Macbook M 系列芯片速度也是不錯的。然后給幾個命令(以下是在 Windows 中執行的,Linux 也類似):

# 查看當前已經下載的模型列表
ollama list

# 下載模型(去選擇你喜歡的模型吧)
ollama pull Mistral

# 修改監聽端口(默認監聽在127.0.0.1,為了能被外部訪問到,需要修改)
$env:ollama_host = "0.0.0.0:8899"

# 開啟服務
ollama serve

啟動后,我們可驗證是否可用:

curl http://<你的ollama部署的機器IP>:8899/api/chat -d '{
"model": "mistral:latest",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'

有返回即準備工作完成啦!恭喜!!如果網絡不通,請檢查防火墻或端口等是否正常哈~

在 OneAPI 中使用本地模型

我們在創建渠道時選擇Ollama,然后手工填上自己要使用的模型,最重要的是后面在代理中寫上自己 ollama 服務的地址即可,如下圖所示:

之后我們修改一下ChatGPT-Next-Web的啟動參數,將這些 Ollama 的模型暴露出去即可在頁面中選擇和使用啦~

后記

到這里,本文接近尾聲了。OneAPI 的功能不止于此,還有 Embeding,繪畫等 API 也適配了,未來還有進一步折騰的空間。不過雖說看起來完美了,但我還有點不爽。主要原因是模型的使用觀測上依然不太夠,我希望對各個模型使用的 token 數量和時間有詳細統計,或許在 OneAPI 中集成 Prometheus 是個不錯的主意,看了下 Issue 還沒有涉及相關討論,未來有空給集成一版看看效果,如果你也想要此功能,歡迎持續關注!

文章轉自微信公眾號@愛折騰的風

上一篇:

原創 | OpenAPI 標準規范

下一篇:

史上最全AI工具大全!1000款AI工具推薦,速度收藏
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費