New API 是由 QuantumNous 团队开发的开源 AI 模型聚合管理中转分发系统,基于 One API 项目进行二次开发,旨在为个人用户和企业提供统一的 AI 模型管理解决方案。项目将大语言模型官方调用结构转换为标准化调用格式,实现了对 OpenAI,Claude,Gemini 等主流 AI 模型的统一接入和管理。
截止 2025 年 10 月,New API 已经在 GitHub 获得了超过 11k 星标,项目采用 JavaScript 和 Go 语言作为主要开发语言,项目高频更新。
功能
New API 的核心价值在于其强大的模型聚合能力,系统支持将多种大语言模型转化为统一调用格式,不仅涵盖主流的 OpenAI,Claude ,Google Gemini 还支持多种第三方模型和接口。同时还集成了 Midjourney-Proxy 和 Suno API,满足了用户在文本生成、图像创作和音乐生成等多方面的需求。
在接口格式兼容性方面,New API 实现了多样的支持,原生支持 OpenAI Response 格式,Claude Messages 格式以及 Gemini 格式。并且提供了灵活的格式转换功能,用户可以通过 OpenAI Chat Completions 格式调用 Claude 模型,相反也可以。系统还支持 Rerank 模型(Cohere 和 Jina)。
New API 也支持缓存计费, 可以在系统中配置提示缓存倍率。用户在命中缓存时,按照设定的比例进行计费。有效地降低了 API 调用成本。 功能支持 OpenAI、Azure、DeepSeek 和 Cloud 等主流渠道,缓存倍率可在 0-1 的范围内灵活设置。
New API 为企业用户提供了完善的管理体系。可以按令牌分组模型限制。允许管理员对不同的用户组进行差异化的配置。
New API 也提供了数据可视化。 系统内置了控制台。用户可以直观地使用统计和性能监控界面。用户可以搭配 neko-api-key-tool 实现 key 查询使用配额。
部署
环境要求和准备工作
- Linux,个人推荐 Ubuntu 24.04
- Docker 环境
源代码部署
下载项目源码并进入项目目录。
git clone https://github.com/QuantumNous/new-api.git
cd new-api
编辑 docker-compose.yml 文件,配置必要的参数, 比如数据库连接信息、端口映射等配置。
配置完成后,就可以使用以下命令启动服务。
docker-compose up -d
默认使用 3000 端口。部署完成后,可以访问 IP 加端口,进入初始化页面创建管理员账号和密码。
一些关键的配置信息说明。
GENERATE_DEFAULT_TOKEN:控制是否为新注册用户生成初始令牌,默认为 falseSTREAMING_TIMEOUT:流式回复超时时间,默认 300 秒DIFY_DEBUG:控制 Dify 渠道是否输出工作流和节点信息,默认为 trueGET_MEDIA_TOKEN:是否统计图片 token,默认为 trueUPDATE_TASK:是否更新异步任务(Midjourney、Suno),默认为 trueGEMINI_VISION_MAX_IMAGE_NUM:Gemini 模型最大图片数量,默认为 16MAX_FILE_DOWNLOAD_MB:最大文件下载大小,单位 MB,默认为 20AZURE_DEFAULT_API_VERSION:Azure 渠道默认 API 版本,默认为 2025-04-01-previewNOTIFICATION_LIMIT_DURATION_MINUTE:邮件通知限制持续时间,默认 10 分钟NOTIFY_LIMIT_COUNT:用户通知在指定持续时间内的最大数量,默认为 2ERROR_LOG_ENABLED:是否记录并显示错误日志,默认为 false
使用
New API 提供了非常丰富的接口调用,几乎兼容当前主流的所有 API 调用形式。
鉴权体系说明
系统采用了四级健全机制:公开、用户、管理员、Root Access Token。该令牌在个人设置 - 系统访问令牌中生成。
- 公开:无需登录
- 用户:需要用户 AccessToken (middleware.UserAuth)
- 管理员:需要管理员 AccessToken (middleware.AdminAuth)
- Root:仅限最高权限用户 AccessToken (middleware.RootAuth)
获取可用模型列表。
const response = await fetch('/api/models', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token',
'New-Api-User': 'your_user_id'
}
});
const data = await response.json();