工作原理如下:
渠道頁面中添加你的?API Key令牌頁面中新增訪問令牌One APImodel 參數,匹配對應的渠道(根據渠道里的模型進行匹配,必須完全一致)。如果匹配到多個渠道,則隨機選擇一個(同優先級)One API 向真正的地址發出請求,并將結果返回給客戶端graph LR
A(用戶)
A --->|使用 One API 分發的 key 進行請求| B(One API)
B -->|中繼請求| C(OpenAI)
B -->|中繼請求| D(Azure)
B -->|中繼請求| E(其他 OpenAI API 格式下游渠道)
B -->|中繼并修改請求體和返回體| F(非 OpenAI API 格式下游渠道)

在群暉上以 Docker 方式安裝。
在注冊表中搜索 one-api ,選擇第一個 justsong/one-api,版本選擇 latest。
本文第一次折騰時,
latest版本對應為v0.5.7-alpha.1;本文寫作時,latest版本對應為v0.6.5

在?docker?文件夾中,創建一個新文件夾?one-api,并在其中建一個子文件夾?data
| 文件夾 | 裝載路徑 | 說明 |
|---|---|---|
docker/one-api/data | /data | 存放數據庫和日志等 |

本地端口不沖突就行,不確定的話可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口號
| 本地端口 | 容器端口 |
|---|---|
3033 | 3000 |

| 可變 | 值 |
|---|---|
TZ | 設為 Asia/Shanghai |

如果你熟悉命令行,可能用?docker cli?更快捷
# 新建文件夾 one-api 和 子目錄
mkdir -p /volume1/docker/one-api/data
# 進入 one-api 目錄
cd /volume1/docker/one-api
# 運行容器
docker run -d \
--restart always \
--name one-api \
-p 3033:3000 \
-v $(pwd)/data:/data \
-e TZ=Asia/Shanghai \
justsong/one-api
也可以用?docker-compose?安裝,將下面的內容保存為?docker-compose.yml?文件
version: '3'
services:
one-api:
image: justsong/one-api
container_name: one-api
restart: unless-stopped
ports:
- 3033:3000
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
然后執行下面的命令
# 新建文件夾 one-api 和 子目錄
mkdir -p /volume1/docker/one-api/data
# 進入 one-api 目錄
cd /volume1/docker/one-api
# 將 docker-compose.yml 放入當前目錄
# 一鍵啟動
docker-compose up -d
在瀏覽器中輸入?http://群暉IP:3033?就能看到主界面

點 登陸 按鈕
初始管理員賬號用戶名為
root,密碼為123456

當然也可以注冊新用戶

登陸成功之后的主界面
【注意】:記得立刻修改默認密碼!

點?添加新的渠道

Moonshot AI
以 Moonshot AI 為例
Moonshot AI
default、vip 和 svipMoonshot AI 的秘鑰,可以在這里申請:https://platform.moonshot.cn/console/api-keys這是?Moonshot?的開發者賬號,新用戶注冊會有?15?元額度。這和之前我們用的?kimi-free-api?中介紹的?refresh_token?不是一個概念。

保存之后,可以?測試

如果沒問題的話,會提示測試成功

當然,我們也可以添加之前使用過的?kimi-free-api
kimi是Moonshot基于Moonshot AI開發的產品
自定義渠道Base URL:填入 kimi-free-api 的訪問地址 http://群暉IP:8126kimi-free-apidefault就行填入 即可refresh_token
保存之后,可以測試一下是否設置正確

要二次分發使用,還需要有令牌

用于控制可使用的模型、額度、時限等
【注意】:這里沒有設置模型范圍,意味著后續添加的新渠道的模型,都是可以通過這個令牌進行訪問的

保存之后


會得到一個字符串,其中
key?:對應的是?ChatGPT Next Web?的環境變量?OPENAI_API_KEYurl:對應的是 ChatGPT Next Web 的環境變量 BASE_URL,但不能用 http://localhost:3000,而要使用外部地址 http://http://群暉IP:3033文章傳送門:跨平臺私人ChatGPT應用ChatGPT-Next-Web
如果你還沒安裝?ChatGPT-Next-Web?,可以用下面的命令一鍵搞定
# 運行容器
docker run -d \
--restart unless-stopped \
--name chatgpt-next-web \
-p 3059:3000 \
-e OPENAI_API_KEY=<你的 key> \
-e BASE_URL=http://<你的群暉IP>:3033 \
-e CUSTOM_MODELS="-all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k" \
yidadaa/chatgpt-next-web
如果你已經安裝過ChatGPT-Next-Web,需要修改三個環境變量參數
OPENAI_API_KEY:之前不論你是安裝的 FreeGPT35 還是 aurora,這個值都是隨便填的,現在必須改為我們前面獲取的 keyBASE_URL:填寫 One API 服務的地址 + 端口| 服務名稱 | 服務地址 |
|---|---|
FreeGPT35 | http://192.168.0.197:3044 |
aurora | http://192.168.0.197:8328 |
GPT4Free | http://192.168.0.197:1337 |
kimi-free-api | http://192.168.0.197:8126 |
One API | http://192.168.0.197:3033 |
CUSTOM_MODELS?:用來控制模型列表,使用?+?增加一個模型,使用?-?來隱藏一個模型,使用?模型名=展示名?來自定義模型的展示名,用英文逗號隔開。需改為?-all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k

重新啟動 ?ChatGPT-Next-Web??容器后,進入的設置,可以看到模型已經改變了

接下來就可以開始聊天了

當然,One API?作為分發系統,還支持充值、兌換、日志等功能

本文章轉載微信公眾號@各種折騰