Files
new-api/README.zh_CN.md

16 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 转售服务运营时,使用者应先完成备案、内容安全、实名、日志留存、税务、支付和上游授权等合规义务。


项目截图

以下账号、渠道、插件安装状态、用量、价格和费用均为模拟数据,插件市场展示官方目录。点击图片可查看原图。

数据看板 插件市场
数据看板:模拟请求量、费用和性能指标 插件市场:官方插件目录与模拟安装状态
模型广场 使用日志
模型广场:模拟模型价格与可用状态 使用日志:模拟 Token 用量、费用和响应耗时

🤝 我们信任的合作伙伴

排名不分先后

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