Files
new-api/README.zh_TW.md

15 KiB
Raw Permalink Blame History

new-api

New API

連接模型、應用程式與 Agent 的 AI 閘道

简体中文 | 繁體中文 | English | Français | 日本語

license release docker AtomGit G-Star

QuantumNous%2Fnew-api | Trendshift
Featured|HelloGitHub AtomGit G-Star

核心能力 • 快速開始 • 部署維運 • 開發擴充 • 文件社群


📝 項目說明

New API 是面向應用程式、Agent 和團隊的自託管 AI 閘道。將不同供應商的模型服務接入統一入口,在同一套控制台中管理渠道、存取權限、用量與成本。

你可以用它為團隊分配已授權的模型資源,在切換上游時減少用戶端改動,或建置自己的多模型服務。支援接入 OpenAI、Anthropic、Google Gemini、Azure OpenAI、AWS Bedrock、Vertex AI、DeepSeek、通義千問及其他相容服務。

Important

  • 本專案僅面向合法授權的 AI API 閘道、組織內部鑑權、多模型管理、用量統計、成本核算和私有化部署場景。
  • 使用者必須合法取得上游 API Key、帳號、模型服務或介面權限,並遵守上游服務條款及適用法律法規。
  • 使用者應確保其使用方式符合上游服務條款及適用法律法規。
  • 面向公眾提供生成式人工智慧服務時,使用者應遵守《生成式人工智慧服務管理暫行辦法》等監管要求,自行完成所在司法轄區要求的備案、許可、內容安全、實名、日誌留存、稅務和上游授權等合規義務。

Warning

將本專案作為面向公眾的生成式 AI 服務或 API 轉售服務運營時,使用者應先完成備案、內容安全、實名、日誌留存、稅務、支付和上游授權等合規義務。


🤝 我們信任的合作伙伴

排名不分先後

Cherry Studio Aion UI 北京大學 阿里雲 IO.NET


🙏 特別鳴謝

JetBrains Logo

感謝 JetBrains 為本項目提供免費的開源開發許可證


核心能力

方向 可以做什麼
模型接入 支援 OpenAI Chat Completions、Responses、Anthropic Messages 和 Gemini 協定,以及上游支援的串流輸出、工具呼叫、推理與多模態輸入
渠道調度 設定模型映射、渠道優先順序與權重、失敗重試、渠道親和性和多金鑰管理
用量與成本 管理額度、訂閱方案、用量日誌、快取計費,以及基於運算式的階梯定價
存取控制 管理使用者、群組、細粒度權限和 API Key 限制;支援 OAuth/OIDC、通行密鑰、兩步驟驗證與登入工作階段管理
非同步任務 透過 JavaScript 外掛擴充圖片、影片等任務 API,統一查詢任務狀態和取得產物
Web 控制台 設定渠道與模型、查看用量和稽核日誌、在 Playground 中測試模型;支援簡體中文、繁體中文、英語、法語、日語、俄語和越南語

協定與介面

介面類型 常用入口
OpenAI Chat / Responses POST /v1/chat/completions、POST /v1/responses
Anthropic Messages POST /v1/messages
Gemini POST /v1beta/models/{model}:generateContent、POST /v1beta/models/{model}:streamGenerateContent
Realtime / Responses WebSocket GET /v1/realtime、GET /v1/responses(WebSocket 升級)
圖片 / 音訊 /v1/images/generations、/v1/images/edits、/v1/audio/speech、/v1/audio/transcriptions、/v1/audio/translations
向量 / 重排 POST /v1/embeddings、POST /v1/rerank
任務外掛 POST /v1/tasks/{pluginKey}、GET /v1/tasks/{taskId},以及各外掛宣告的協定路由

RelayKit 提供上述四種文字協定之間的請求、回應和串流轉換。實際可用能力取決於渠道、上游模型和轉換路徑;協定特有的工具與欄位可能無法完整映射。WebSocket 同樣需要上游與渠道設定支援。

本 README 描述目前原始碼的能力,部署時請同時查看所選版本的發行說明。

快速開始

使用 Docker 本機體驗

以下指令使用 SQLite 啟動單一執行個體,僅監聽本機連接埠:

mkdir -p data
docker run --name new-api -d --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -e TZ=Asia/Shanghai \
  -v "$(pwd)/data:/data" \
  calciumion/new-api:latest

開啟 http://localhost:3000,依初始化精靈建立管理員帳號。SQLite 資料庫存放在掛載的 data 目錄中,更換容器後仍會保留。

發起第一次請求

  1. 新增渠道,填寫上游 API Key、可用模型和所屬群組,執行渠道測試。
  2. 設定模型價格,確保呼叫使用者有可用額度或有效訂閱。
  3. 在控制台建立 API Key,確保它能存取對應群組和模型。
  4. 對於 OpenAI 相容用戶端,將 Base URL 設為 http://localhost:3000/v1,金鑰使用 New API 簽發的 Key。

在終端機中將 NEW_API_KEY 環境變數設為該金鑰,查詢它可以存取的模型:

curl --fail-with-body http://localhost:3000/v1/models \
  -H "Authorization: Bearer ${NEW_API_KEY}"

然後呼叫 Responses,將 your-enabled-model 替換為已啟用且支援該介面的模型名稱:

curl --fail-with-body http://localhost:3000/v1/responses \
  -H "Authorization: Bearer ${NEW_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"model":"your-enabled-model","input":"Hello!"}'

部署與維運

Docker Compose

儲存庫的 Compose 設定 預設啟動 New API + PostgreSQL + Redis,並提供 MySQL 和獨立 ClickHouse 日誌資料庫的設定範例。

git clone https://github.com/QuantumNous/new-api.git
cd new-api

啟動前編輯 docker-compose.yml:同時替換資料庫、Redis 服務及對應連線字串中的範例密碼,並設定固定的隨機 SESSION_SECRET(可用 openssl rand -hex 32 產生)。透過 HTTPS 存取控制台時,設定 SESSION_COOKIE_SECURE=true,並在 SESSION_COOKIE_TRUSTED_URL 中填寫控制台對外的精確 HTTPS Origin。

docker compose up -d
docker compose logs -f new-api

儲存與設定

元件 可選方案
主資料庫 SQLite、MySQL ≥ 5.7.8、PostgreSQL ≥ 9.6
獨立日誌資料庫 透過 LOG_SQL_DSN 設定,額外支援 ClickHouse
快取 可選 Redis 與記憶體快取;多節點需要共享限流額度時使用共享 Redis
容器平台 Linux amd64 / arm64
環境變數 用途
SQL_DSN 主資料庫連線字串;未設定時使用 SQLite
LOG_SQL_DSN 可選的獨立日誌資料庫連線字串
REDIS_CONN_STRING Redis 連線字串
SESSION_SECRET 持久保存的驗證金鑰,所有節點必須一致
CRYPTO_SECRET 預設使用 SESSION_SECRET;共享 Redis 的節點必須使用相同的有效值
SESSION_COOKIE_SECURE HTTPS 控制台設為 true,啟用 Secure 更新 Cookie 和嚴格的更新/登出來源驗證
SESSION_COOKIE_TRUSTED_URL Secure 模式必填:以逗號分隔的精確 HTTPS Origin,不含路徑或萬用字元;本機 HTTP 模式不設定
TRUSTED_PROXIES 可信反向代理 IP/CIDR,或 none;依實際網路明確設定

完整設定見環境變數範例、環境變數文件和驗證與登入工作階段說明。容器變數應透過 Compose 的 environment 或 env_file 注入;只複製 .env.example 不會自動將變數傳入容器。

正式部署時使用 HTTPS,並設定反向代理支援串流回應與 WebSocket 升級。持久化並備份資料庫和掛載資料。多節點必須共用主資料庫和驗證金鑰;獨立 Redis 或記憶體限流器會按節點分別計數。不同拓撲下的工作階段傳播行為見驗證文件。

從發行頁選擇明確的映像版本,閱讀升級說明並先備份再升級。latest 會隨發行建置變動;既有執行個體應依實際版本評估遷移與相容性。

開發與擴充

後端使用 Go 和 Gin;控制台使用 React 19、TypeScript、Rsbuild、TanStack 與 Tailwind CSS 4。前端相依套件和指令碼使用 Bun;Go 語言基線見 go.mod,容器建置工具鏈見 Dockerfile。

後端會嵌入 web/dist,首次啟動前先建置前端:

# 儲存庫根目錄
cd web
bun install --frozen-lockfile
bun run build
cd ..
go run .

在另一個終端機啟動前端開發伺服器:

cd web
bun run dev -- --port 5173

存取 http://localhost:5173,開發伺服器會將 API 請求代理到 3000 連接埠的後端。需要容器化開發後端時,參閱 docker-compose.dev.yml 和 makefile 中的 make dev。

目錄 職責
router/、middleware/、controller/ HTTP 路由、存取驗證與 API 處理
relay/ 上游介接與請求調度
service/、model/ 業務邏輯與持久化
relaykit/ 可獨立建置的協定 DTO 與轉換 Go 模組
plugins/tasks/ JavaScript 任務外掛;編寫方式與宿主邊界見 Task Plugin API v1
web/ Web 控制台,參閱前端開發約定
electron/ 桌面封裝與打包

貢獻前請閱讀 AGENTS.md。依改動範圍執行檢查:Go 模組使用 make test;前端在 web/ 下執行 bun check -b、bun run lint、bun run test 和 bun run build。修改 RelayKit 後還必須在 relaykit/ 下執行 GOWORK=off go build ./...。

文件與社群

資源 入口
官方文件 使用指南 · 安裝部署 · API 參考
專案導讀 DeepWiki
使用問題與交流 常見問題 · 社群管道
缺陷與功能建議 GitHub Issues
安全漏洞 依安全政策私下回報

回報問題時請附上版本、部署方式、重現步驟及去識別化日誌。歡迎貢獻文件、翻譯、渠道介接和有針對性的回歸測試。


🔗 相關項目

上游項目

項目 說明
One API 原版項目基礎
Midjourney-Proxy Midjourney 接口支援

配套工具

項目 說明
new-api-key-tool Key 額度查詢工具
new-api-horizon New API 高性能優化版

📜 許可證

本項目採用 GNU Affero 通用公共許可證 v3.0 (AGPLv3) 授權。

依據 AGPLv3 第 7 條,本專案另適用附加條款。修改版本必須在適當法律聲明及介面中顯著的關於、法律、頁尾或署名位置保留作者署名 Frontend design and development by New API contributors.,並保留指向原專案 https://github.com/QuantumNous/new-api 的可見連結。

本項目為開源項目,在 One API(MIT 許可證)的基礎上進行二次開發。

如果您所在的組織政策不允許使用 AGPLv3 許可的軟體,或您希望規避 AGPLv3 的開源義務,請發送郵件至:support@quantumnous.com

署名及相依套件聲明見 NOTICE 和第三方授權條款。


🌟 Star History

Star History Chart


💖 感謝使用 New API

如果這個項目對你有幫助,歡迎給我們一個 ⭐️ Star!

官方文件 • 問題回饋 • 最新發布

Built with ❤️ by QuantumNous