Important
- 本專案僅面向合法授權的 AI API 閘道、組織內部鑑權、多模型管理、用量統計、成本核算和私有化部署場景。
- 使用者必須合法取得上游 API Key、帳號、模型服務或介面權限,並遵守上游服務條款及適用法律法規。
- 使用者應確保其使用方式符合上游服務條款及適用法律法規。
- 面向公眾提供生成式人工智慧服務時,使用者應遵守《生成式人工智慧服務管理暫行辦法》等監管要求,自行完成所在司法轄區要求的備案、許可、內容安全、實名、日誌留存、稅務和上游授權等合規義務。
排名不分先後
感謝 JetBrains 為本項目提供免費的開源開發許可證
# 複製項目
git clone https://github.com/QuantumNous/new-api.git
cd new-api
# 編輯 docker-compose.yml 配置
nano docker-compose.yml
# 啟動服務
docker-compose up -d使用 Docker 命令
# 拉取最新鏡像
docker pull calciumion/new-api:latest
# 使用 SQLite(預設)
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest
# 使用 MySQL
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest💡 提示:
-v ./data:/data會將數據保存在當前目錄的data資料夾中,你也可以改為絕對路徑如-v /your/custom/path:/data
🎉 部署完成後,訪問 http://localhost:3000 即可使用!
Warning
將本專案作為面向公眾的生成式 AI 服務或 API 轉售服務運營時,使用者應先完成備案、內容安全、實名、日誌留存、稅務、支付和上游授權等合規義務。
📖 更多部署方式請參考 部署指南
📖 官方文件 | 
快速導航:
| 分類 | 連結 |
|---|---|
| 🚀 部署指南 | 安裝文件 |
| ⚙️ 環境配置 | 環境變數 |
| 📡 接口文件 | API 文件 |
| ❓ 常見問題 | FAQ |
| 💬 社群交流 | 交流管道 |
詳細特性請參考 特性說明
| 特性 | 說明 |
|---|---|
| 🎨 全新 UI | 現代化的用戶界面設計 |
| 🌍 多語言 | 支援簡體中文、繁體中文、英文、法語、日語 |
| 🔄 數據兼容 | 完全兼容原版 One API 資料庫 |
| 📈 數據看板 | 視覺化控制檯與統計分析 |
| 🔒 權限管理 | 令牌分組、模型限制、用戶管理 |
- ✅ 合法授權場景下的內部儲值與額度分配(易支付、Stripe)
- ✅ 組織內按次、按量或快取命中成本核算
- ✅ 支援 OpenAI、Azure、DeepSeek、Claude、Qwen 等模型的快取計費統計
- ✅ 面向內部管理或企業客戶的靈活計費策略配置
- 😈 Discord 授權登錄
- 🤖 LinuxDO 授權登錄
- 📱 Telegram 授權登錄
- 🔑 OIDC 統一認證
- 🔍 Key 查詢使用額度(配合 new-api-key-tool)
API 格式支援:
- ⚡ OpenAI Responses
- ⚡ OpenAI Realtime API(含 Azure)
- ⚡ Claude Messages
- ⚡ Google Gemini
- 🔄 Rerank 模型(Cohere、Jina)
智慧路由:
- ⚖️ 管道加權隨機
- 🔄 失敗自動重試
- 🚦 用戶級別模型限流
格式轉換:
- 🔄 OpenAI Compatible ⇄ Claude Messages
- 🔄 OpenAI Compatible → Google Gemini
- 🔄 Google Gemini → OpenAI Compatible - 僅支援文本,暫不支援函數調用
- 🚧 OpenAI Compatible ⇄ OpenAI Responses - 開發中
- 🔄 思考轉內容功能
Reasoning Effort 支援:
查看詳細配置
OpenAI 系列模型:
o3-mini-high- High reasoning efforto3-mini-medium- Medium reasoning efforto3-mini-low- Low reasoning effortgpt-5-high- High reasoning effortgpt-5-medium- Medium reasoning effortgpt-5-low- Low reasoning effort
Claude 思考模型:
claude-3-7-sonnet-20250219-thinking- 啟用思考模式
Google Gemini 系列模型:
gemini-2.5-flash-thinking- 啟用思考模式gemini-2.5-flash-nothinking- 禁用思考模式gemini-2.5-pro-thinking- 啟用思考模式gemini-2.5-pro-thinking-128- 啟用思考模式,並設置思考預算為128tokens- 也可以直接在 Gemini 模型名稱後追加
-low/-medium/-high來控制思考力道(無需再設置思考預算後綴)
詳情請參考 接口文件 - 閘道接口
| 模型類型 | 說明 | 文件 |
|---|---|---|
| 🤖 OpenAI-Compatible | OpenAI 兼容模型 | 文件 |
| 🤖 OpenAI Responses | OpenAI Responses 格式 | 文件 |
| 🎨 Midjourney-Proxy | Midjourney-Proxy(Plus) | 文件 |
| 🎵 Suno-API | Suno API | 文件 |
| 🔄 Rerank | Cohere、Jina | 文件 |
| 💬 Claude | Messages 格式 | 文件 |
| 🌐 Gemini | Google Gemini 格式 | 文件 |
| 🔧 Dify | ChatFlow 模式 | - |
| 🎯 自訂上游 | 支援配置合法授權的上游介面位址 | - |
查看完整接口列表
Tip
最新版 Docker 鏡像: calciumion/new-api:latest
| 組件 | 要求 |
|---|---|
| 本地資料庫 | SQLite(Docker 需掛載 /data 目錄) |
| 遠端資料庫 | MySQL ≥ 5.7.8 或 PostgreSQL ≥ 9.6 |
| 容器引擎 | Docker / Docker Compose |
| 系統架構 | 僅支援 64 位元系統(amd64 / arm64),不支援 32 位元系統 |
常用環境變數配置
| 變數名 | 說明 | 預設值 |
|---|---|---|
SESSION_SECRET |
鑑權簽章密鑰;所有節點必須保持一致 | - |
SESSION_COOKIE_SECURE |
false/未設定時關閉 refresh/logout OriginGuard 以相容本機 HTTP 開發代理;true 時啟用 Secure Cookie 和嚴格 Origin 驗證 |
false |
SESSION_COOKIE_TRUSTED_URL |
Secure 模式必填:允許呼叫 refresh/logout 的精確 HTTPS Origin,多個值以英文逗號分隔;不是 relay CORS 白名單 | - |
TRUSTED_PROXIES |
未設定/留空時信任本機回送、RFC1918 和 IPv6 ULA 並輸出啟動警告;none 不信任任何代理;明確指定的代理 IP/CIDR 清單會完整取代預設值 |
127.0.0.0/8, ::1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7 |
USER_SESSION_ACTIVE_LIMIT |
單一用戶最大活躍登入 Session 數 | 50 |
USER_SESSION_ISSUANCE_LIMIT |
單一用戶在簽發視窗內可建立的 Session 總數,包含已撤銷 Session | 100 |
USER_SESSION_ISSUANCE_WINDOW_SECONDS |
Session 簽發計數視窗(秒);高於 revoked 保留期時自動限制 | 86400 |
USER_SESSION_REVOKED_RETENTION_DAYS |
revoked Session 用於稽核與簽發計數的保留天數 | 7 |
USER_SESSION_HOURLY_ALERT_THRESHOLD |
全域每小時 Session 簽發告警門檻;只告警,不拒絕登入 | 5000 |
CRYPTO_SECRET |
快取鍵 HMAC 密鑰;共用 Redis 的節點必須使用相同有效值 | 預設跟隨 SESSION_SECRET |
SQL_DSN |
資料庫連接字符串 | - |
REDIS_CONN_STRING |
Redis 連接字符串 | - |
STREAMING_TIMEOUT |
流式超時時間(秒) | 300 |
STREAM_SCANNER_MAX_BUFFER_MB |
流式掃描器單行最大緩衝(MB),圖像生成等超大 data: 片段(如 4K 圖片 base64)需適當調大 |
64 |
MAX_REQUEST_BODY_MB |
請求體最大大小(MB,解壓縮後計;防止超大請求/zip bomb 導致記憶體暴漲),超過將返回 413 |
32 |
AZURE_DEFAULT_API_VERSION |
Azure API 版本 | 2025-04-01-preview |
ERROR_LOG_ENABLED |
錯誤日誌開關 | false |
PYROSCOPE_URL |
Pyroscope 服務位址 | - |
PYROSCOPE_APP_NAME |
Pyroscope 應用名 | new-api |
PYROSCOPE_BASIC_AUTH_USER |
Pyroscope Basic Auth 用戶名 | - |
PYROSCOPE_BASIC_AUTH_PASSWORD |
Pyroscope Basic Auth 密碼 | - |
PYROSCOPE_MUTEX_RATE |
Pyroscope mutex 採樣率 | 5 |
PYROSCOPE_BLOCK_RATE |
Pyroscope block 採樣率 | 5 |
HOSTNAME |
Pyroscope 標籤裡的主機名 | new-api |
📖 完整配置: 環境變數文件
方式 1:Docker Compose(推薦)
# 複製項目
git clone https://github.com/QuantumNous/new-api.git
cd new-api
# 編輯配置
nano docker-compose.yml
# 啟動服務
docker-compose up -d方式 2:Docker 命令
使用 SQLite:
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest使用 MySQL:
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest💡 路徑說明:
./data:/data- 相對路徑,數據保存在當前目錄的 data 資料夾- 也可使用絕對路徑,如:
/your/custom/path:/data
Warning
- 所有節點必須使用同一個主資料庫,並設定相同的
SESSION_SECRET;否則 Access Token、Refresh 工作階段和臨時鑑權流程無法一致驗證。 - 連線至同一個 Redis 的節點還必須設定相同的
CRYPTO_SECRET,否則節點產生的快取鍵摘要不一致,無法正確共用快取。
登入 Session 和單一使用者的活躍數/簽發數限制均以資料庫為權威。Redis 中的 Session 僅為短期快取,TTL 跟隨 SYNC_FREQUENCY(預設 60 秒),且不會超過 Session 的剩餘有效期。
| Redis 拓撲 | Session 狀態傳播 | 限流語義 |
|---|---|---|
| 所有節點共用 Redis | 撤銷和版本發布通常即時傳播 | Redis 限流額度在節點間共用 |
| 每個節點使用獨立 Redis | 最遲在有效 SYNC_FREQUENCY 內回源資料庫並收斂;版本輪換後,新 Token 在持有舊快取的節點上可能短暫傳回 401 |
每個節點獨立計數,叢集總額度最壞約為單一節點門檻乘以節點數 |
| 不使用 Redis | 每次 Session 驗證都直接讀取資料庫 | 各節點使用獨立的記憶體限流額度 |
縮短 SYNC_FREQUENCY 可減少獨立 Redis 的陳舊視窗,但每個活躍 SID 在每個節點上會依該 TTL 增加一次資料庫主鍵查詢。上述保證只讓 Session 鑑權在不同拓撲下維持有界陳舊;限流和其他 Redis 控制面快取仍受拓撲影響。
Token、Origin 驗證和 PAT 契約請參閱使用者鑑權與登入工作階段。
重試配置: 設置 → 運營設置 → 通用設置 → 失敗重試次數
快取配置:
REDIS_CONN_STRING:Redis 快取(推薦)MEMORY_CACHE_ENABLED:記憶體快取
| 項目 | 說明 |
|---|---|
| One API | 原版項目基礎 |
| Midjourney-Proxy | Midjourney 接口支援 |
| 項目 | 說明 |
|---|---|
| new-api-key-tool | Key 額度查詢工具 |
| new-api-horizon | New API 高性能優化版 |
| 資源 | 連結 |
|---|---|
| 📘 常見問題 | FAQ |
| 💬 社群交流 | 交流管道 |
| 🐛 回饋問題 | 問題回饋 |
| 📚 完整文件 | 官方文件 |
歡迎各種形式的貢獻!
- 🐛 報告 Bug
- 💡 提出新功能
- 📝 改進文件
- 🔧 提交程式碼
本項目採用 GNU Affero 通用公共許可證 v3.0 (AGPLv3) 授權。
本項目為開源項目,在 One API(MIT 許可證)的基礎上進行二次開發。
如果您所在的組織政策不允許使用 AGPLv3 許可的軟體,或您希望規避 AGPLv3 的開源義務,請發送郵件至:support@quantumnous.com
