One API - LLM API 管理與分發系統
項目概述
One API 是一個開源的 LLM API 管理與分發系統,支援 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、ChatGLM 等主流模型,統一 API 适配,可用於 key 管理與二次分發。該項目提供單可執行文件,支援 Docker 鏡像,實現一鍵部署,開箱即用。
核心特性
📋 多模型支援
項目支援眾多主流大語言模型提供商:
- OpenAI 系列:ChatGPT 系列模型(支援 Azure OpenAI API)
- Anthropic:Claude 系列模型(支援 AWS Claude)
- Google:PaLM2/Gemini 系列模型
- other:其它系列模型
🔧 核心功能
API 管理與分發
- 支援配置鏡像以及眾多第三方代理服務
- 支援通過負載均衡的方式訪問多個渠道
- 支援 stream 模式,可以通過流式傳輸實現打字機效果
- 支援多機部署
- 支援失敗自動重試
- 支援繪圖接口
用戶與權限管理
- 令牌管理:設置令牌的過期時間、額度、允許的 IP 範圍以及允許的模型訪問
- 兌換碼管理:支援批量生成和導出兌換碼,可使用兌換碼為賬戶進行充值
- 用戶分組:支援用戶分組以及渠道分組,支援為不同分組設置不同的倍率
- 渠道管理:批量創建渠道,支援渠道設置模型列表
監控與統計
- 支援查看額度明細
- 支援用戶邀請獎勵
- 支援以美元為單位顯示額度
- 配合 Message Pusher 可將報警信息推送到多種 App 上
自定義功能
- 支援發布公告,設置充值鏈接,設置新用戶初始額度
- 支援模型映射,重定向用戶的請求模型
- 支援自定義系統名稱、logo 以及頁腳
- 支援自定義首頁和關於頁面
- 支援通過系統訪問令牌調用管理 API
🔐 安全與認證
多種登錄方式
- 郵箱登錄註冊(支援註冊郵箱白名單)以及通過郵箱進行密碼重置
- 飛書授權登錄
- GitHub 授權登錄
- 微信公眾號授權(需要額外部署 WeChat Server)
安全特性
- 支援 Cloudflare Turnstile 用戶校驗
- 支援主題切換
- 支援 Cloudflare AI Gateway
部署方式
Docker 部署(推薦)
使用 SQLite
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
使用 MySQL
docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
Docker Compose 部署
# 目前支援 MySQL 啟動,數據存儲在 ./data/mysql 文件夾內
docker-compose up -d
# 查看部署狀態
docker-compose ps
手動部署
- 從 GitHub Releases 下載可執行文件或從源碼編譯:
git clone https://github.com/songquanpeng/one-api.git
# 構建前端
cd one-api/web/default
npm install
npm run build
# 構建後端
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
- 運行:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs
雲平台部署
Zeabur 部署
- Fork 代碼倉庫
- 在 Zeabur 創建 Project,添加 MySQL 服務
- 配置環境變量
PORT=3000和SQL_DSN - 部署並配置域名
Render 部署
- 直接部署 Docker 鏡像
- 無需 Fork 倉庫
配置說明
環境變量配置
數據庫配置
SQL_DSN:數據庫連接字符串(推薦使用 MySQL 或 PostgreSQL)LOG_SQL_DSN:日誌表獨立數據庫連接
緩存配置
REDIS_CONN_STRING:Redis 連接字符串,用於緩存MEMORY_CACHE_ENABLED:啟用內存緩存SYNC_FREQUENCY:數據庫同步頻率(秒)
集群配置
SESSION_SECRET:固定會話密鑰NODE_TYPE:節點類型(master/slave)FRONTEND_BASE_URL:前端重定向地址
安全配置
GLOBAL_API_RATE_LIMIT:API 速率限制GLOBAL_WEB_RATE_LIMIT:Web 速率限制RELAY_TIMEOUT:中繼超時設置
命令行參數
--port <port_number>:指定端口號(默認 3000)--log-dir <log_dir>:指定日誌文件夾--version:打印版本號--help:查看幫助
使用方法
- 初始登錄:使用默認賬號
root,密碼123456 - 渠道配置:在渠道頁面添加 API Key
- 令牌創建:在令牌頁面創建訪問令牌
- 客戶端配置:將 API Base 設置為 One API 部署地址,API Key 設置為生成的令牌
API 使用示例
# OpenAI 官方庫配置
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"
渠道指定
可以通過在令牌後添加渠道 ID 來指定使用特定渠道:
Authorization: Bearer ONE_API_KEY-CHANNEL_ID
架構設計
用戶 → One API → OpenAI/Azure/Claude/Gemini 等多個提供商
One API 作為中間層,統一不同提供商的 API 格式,提供:
- 負載均衡
- 請求中繼和格式轉換
- 用戶管理和權限控制
- 使用量統計和計費
集成案例
ChatGPT Next Web
docker run --name chat-next-web -d -p 3001:3000 yidadaa/chatgpt-next-web
在頁面設置接口地址和 API Key 即可。
ChatGPT Web
docker run --name chatgpt-web -d -p 3002:3002 -e OPENAI_API_BASE_URL=https://openai.justsong.cn -e OPENAI_API_KEY=sk-xxx chenzhaoyu94/chatgpt-web
許可證
本項目使用 MIT 協議開源,要求在頁面底部保留署名以及指向本項目的鏈接。
項目地址
- GitHub:https://github.com/songquanpeng/one-api
- 在線演示:https://openai.justsong.cn
- Docker Hub:justsong/one-api