了解過大模型的玩家都知道,我們使用的大部分 AI 工具只支持標(biāo)準(zhǔn)格式的 OpenAI API ,比如劃詞翻譯、chatGPTNext等等。
雖然國內(nèi)大模型宣稱兼容 OpenAI 的接口,但是由于開發(fā)團(tuán)隊的不同,導(dǎo)致提供商提供的 API 接口并不一致,無法進(jìn)行適配。
而今天要介紹的這款工具可以完美解決這個問題,通過這個項目可以把各大模型提供商所有的免費模型全部接入群暉,并轉(zhuǎn)為標(biāo)準(zhǔn) OpenAI 格式供他人使用。
你還不知道國內(nèi)外提供商也有免費大模型供用戶使用,這個項目也詳細(xì)的幫我們整理羅列了出來!
項目地址
https://github.com/fruitbars/simple-one-api
介紹
Simple-One-API 項目旨在解決 one-api 過于復(fù)雜的問題,去掉了統(tǒng)計、流量、計費等功能,通過兼容多種大模型接口,并統(tǒng)一對外提供 OpenAI 接口,使用戶可以方便地集成和調(diào)用多種大模型。
功能
- 支持配置多個模型,可以隨機(jī)負(fù)載均衡
- 支持一個模型可配置多個
api_key
,并且可以隨機(jī)負(fù)載均衡 - 支持設(shè)置一個對外總
api_key
- 支持
random
模型,后臺自動尋找配置的可用的模型 - 支持模型名稱重定向設(shè)置模型設(shè)置別名
- 支持全局設(shè)置模型名稱重定向,并且支持all模式全部重定向
- 支持每一種模型服務(wù)設(shè)置服務(wù)的地址
- 兼容支持OpenAI的接口,同時支持/v1和/v1/chat/completions兩種路徑
- 對于不支持system的模型,simple-one-api會放到第一個prompt中直接兼容(更加統(tǒng)一,例如沉浸式翻譯中如果system,不支持system的模型也能正常調(diào)用)
- 支持全局代理模式
- 支持每個service設(shè)置qps或qpm或者concurrency
- 支持
/v1/models
和/v1/models/:model
接口
免費模型申請
因為 Simple-One-API 可接入的模型過多,所以下面以訊飛 Spark 模型和扣子為例,其他的可以參考項目文檔,有詳細(xì)的說明。
訊飛
打開 https://xinghuo.xfyun.cn/sparkapi 進(jìn)行注冊,完成實名認(rèn)證。
創(chuàng)建一個應(yīng)用。
點擊左側(cè)星火認(rèn)知大模型 -> Spark Lite 就可以領(lǐng)取無限量的 token。(只有Spark Lite才可以免費無限量使用)
接著把右側(cè)的 APPID、APISecret、APIKey 復(fù)制保存下來供后面使用。
扣子
登錄扣子 https://www.coze.cn/open/oauth/pats 創(chuàng)建個人令牌。
復(fù)制并保存 Secret token。
在扣子首頁創(chuàng)建一個新的Bot。
復(fù)制保存Bot后面的一串?dāng)?shù)字,如下圖738803xxxxxxxxxxx730
選擇好模型后,點擊發(fā)布。
勾選 Bot as API。
安裝
打開群暉后臺,在【File Station】套件中創(chuàng)建simpleOneAPI
文件夾來存放配置數(shù)據(jù)。
把下面的代碼保存為config.json
文件。把 xinghuo 下的 appid、api_key、api_secret 設(shè)置為前面申請的訊飛相關(guān)密鑰,把 cozecn 下的 models 設(shè)置為738803xxxxxxxxxxx730
,token為前面保存的 Secret token。
{ "debug": false, "load_balancing": "random", "services": { "xinghuo": [ { "models": ["spark-lite", "spark3.5-max"], "enabled": true, "credentials": { "appid": "xxx", "api_key": "xxx", "api_secret": "xxx" } } ], "cozecn": [ { "models": ["xxx"], "enabled": true, "credentials": { "token": "xxx" } } ] } }
再上傳到simpleOneAPI
文件夾中。
點擊文件屬性,復(fù)制config.json
的文件夾路徑。
保存下面的代碼,把/path/to/config.json
替換為config.json
的文件夾路徑。
version: '3.8' services: simple-one-api: image: fruitbars/simple-one-api container_name: simple-one-api ports: - "9090:9090" volumes: - /path/to/config.json:/app/config.json restart: unless-stopped
把文件保存為docker-compose.yml
文件,并上傳到simpleOneAPI
文件夾。
打開群暉【Container Manager】,新增一個項目,路徑選擇剛剛創(chuàng)建的文件夾,并使用前面創(chuàng)建好的 docker-compose 文件。
等待項目啟動完畢。
測試
最后找一款 API 測試工具。輸入【群暉地址:9090/v1/chat/completions】,需要注意 body 體中的model
要與config.json
文件的 models 相對應(yīng)。
如果沒有 API 調(diào)試工具,也可以使用劃詞翻譯等軟件,只需配置 model 為config.json
文件中含有的類型,并把地址設(shè)置為群暉的地址即可。
后記
訊飛的 API 我自己嘗試了多次都無法成功,一直提示websocket: bad handshake
,不知道是作者沒適配還是其他什么原因,不過扣子是可以的。
如果想要在外網(wǎng)訪問,可以直接使用 Nginx Proxy Manager 或其他反代工具反代 9090 端口,這樣就可以通過域名訪問在外網(wǎng)訪問群暉搭建的接口服務(wù)了。
我是老寧
一個熱愛技術(shù)的程序員和極客,群暉NAS深度玩家!
專注NAS相關(guān)技術(shù)分享,原創(chuàng)!干貨!
覺得老寧的文章對你有幫助,記得點贊、收藏、加關(guān)注!
作者聲明本文無利益相關(guān),歡迎值友理性交流,和諧討論~
,