
如何快速實現REST API集成以優化業務流程
工作原理如下:
渠道
頁面中添加你的?API Key
令牌
頁面中新增訪問令牌One API
model
參數,匹配對應的渠道(根據渠道里的模型進行匹配,必須完全一致)。如果匹配到多個渠道,則隨機選擇一個(同優先級)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
和 svip
Moonshot 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:8126
kimi-free-api
default
就行填入
即可refresh_token
保存之后,可以測試一下是否設置正確
要二次分發使用,還需要有令牌
用于控制可使用的模型、額度、時限等
【注意】:這里沒有設置模型范圍,意味著后續添加的新渠道的模型,都是可以通過這個令牌進行訪問的
保存之后
會得到一個字符串,其中
key
?:對應的是?ChatGPT Next Web
?的環境變量?OPENAI_API_KEY
url
:對應的是 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
,這個值都是隨便填的,現在必須改為我們前面獲取的 key
BASE_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
?作為分發系統,還支持充值、兌換、日志等功能
本文章轉載微信公眾號@各種折騰