【new-api】把多家 AI 模型统一接入一个自托管网关
这是一个自托管的 AI 网关,面向应用、智能体和团队,用于连接多个上游模型服务,并对外提供统一的 API。它主要解决多模型接入分散、密钥管理复杂、路由切换麻烦、用量与成本难以集中管理的问题。
主要功能与特性
- 多模型接入:支持 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages、Gemini API;在上游模型和渠道支持的情况下,可使用流式响应、工具调用、推理和多模态输入。
- 支持多种上游服务:可接入 OpenAI、Anthropic、Google Gemini、Azure OpenAI、AWS Bedrock、Vertex AI、DeepSeek、Qwen 以及其他兼容服务。
- 请求路由与管理:支持模型映射、渠道优先级、权重配置、请求重试、渠道亲和,以及多个上游 API Key 管理。
- 用量与成本管理:提供配额、订阅、用量日志、缓存计费,以及基于表达式的价格配置,便于不同使用层级进行成本核算。
- 访问控制:支持用户、用户组、细粒度权限、API Key 限制;也支持 OAuth/OIDC、Passkeys、双因素认证和登录会话管理。
- 异步任务扩展:可通过 JavaScript 插件扩展图像、视频等任务 API,并获取任务状态和输出。
- Web 控制台:可在控制台配置渠道和模型、查看用量和审计日志、在 Playground 中试用模型;界面支持英文、简体中文、繁体中文、法语、日语、俄语和越南语。
- 常见接口覆盖:提供
/v1/chat/completions、/v1/responses、/v1/messages、Gemini 生成接口、Realtime/WebSocket 接口、图像与音频接口、Embeddings/Rerank 接口,以及任务插件接口。
快速上手示例
可以使用 Docker 在本地快速启动一个单实例,数据保存在本地 data 目录:
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,完成初始化并创建管理员账号。
首次使用的基本流程是:
- 添加一个上游渠道,填入 API Key、可用模型和分组,并进行渠道测试。
- 配置模型价格,并确保用户有配额或有效订阅。
- 在控制台创建一个可访问对应分组和模型的 API Key。
- 在客户端中把 Base URL 设置为
http://localhost:3000/v1,并使用网关生成的 API Key。
查看当前 Key 可访问的模型:
curl --fail-with-body http://localhost:3000/v1/models \
-H "Authorization: Bearer ${NEW_API_KEY}"
调用 Responses 接口:
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,组合默认包含 PostgreSQL 和 Redis,并支持进一步配置 MySQL 或单独的 ClickHouse 日志数据库。
适合的使用场景与目标用户
这个项目适合需要把多个 AI 模型服务集中管理的场景,例如:
- 团队内部共享已授权的模型访问入口。
- 应用需要统一 API,后续切换上游模型供应商时不想逐个修改客户端配置。
- 组织需要私有化部署多模型服务,并通过 Web 控制台管理渠道、用户、配额和日志。
- 需要对模型调用进行用量统计、成本核算和权限控制。
- 希望通过插件扩展图像、视频等异步任务能力。
目标用户主要包括 AI 应用开发者、团队技术管理员、平台工程师,以及需要自托管 AI 网关的组织或机构。需要注意的是,项目强调合法授权使用场景;如果要面向公众提供生成式 AI 服务或 API 转售服务,还需要自行完成所在地要求的备案、许可、内容安全、实名、日志留存、税务和上游授权等义务。
总结
这是一个定位清晰的自托管 AI 网关,核心价值在于把模型接入、路由、权限、配额、用量、成本和插件扩展集中到一个系统中。对于需要统一管理多个 AI 服务、希望降低客户端接入复杂度的团队来说,它提供了一套较完整的方案。本地 Docker 启动方式便于快速体验,但生产环境仍需要关注数据库、缓存、HTTPS、反向代理、备份和合规配置。