New API - AI 网关与资产管理系统

聚合 40+ AI 提供商的统一 API 网关

By Leo in 开源项目 后端开发

April 21, 2025

项目概述

New API 是一个企业级的 LLM API 网关与资产管理系统。该项目通过统一的接口聚合了全球 40+ 家主流 AI 服务商(包括 OpenAI、Claude、Google Gemini、Azure、AWS Bedrock 等),为企业和开发者提供一站式的 AI 能力接入方案。

作为 One API 的增强版分支,New API 在保持完全数据兼容的基础上,新增了大量企业级功能,包括智能路由、格式转换、多租户管理、支付计费系统等。


核心功能

🌐 多提供商聚合

支持 40+ 家 AI 服务商,覆盖主流 LLM、图像生成、音频处理等能力:

类别支持的服务商
通用 LLMOpenAI, Claude, Google Gemini, Azure OpenAI, Anthropic
国内厂商阿里云通义千问、百度文心、腾讯混元、智谱 GLM、讯飞星火
云平台AWS Bedrock, Google Vertex AI
专项能力Midjourney (图像)、Suno (音频)、Cohere (Rerank)

🧠 智能路由与格式转换

  • 智能路由策略:加权随机、失败自动重试、用户级速率限制
  • 格式无缝转换:OpenAI ↔ Claude Messages ↔ Gemini 等多种格式互转
  • 推理 effort 控制:支持 o3、GPT-5、Claude Thinking 等推理模型

💰 企业级计费系统

  • 多种支付方式:EPay、Stripe 在线充值
  • 灵活计费模式:按量计费、缓存计费
  • 配额管理:Token 分组、模型级别配额控制

🔐 多样化认证体系

  • OAuth 登录:GitHub、Discord、Telegram、LinuxDO
  • WebAuthn/Passkeys 支持
  • OIDC 统一认证集成

技术架构

后端技术栈

┌─────────────────────────────────────────────────────────┐
│                      Router Layer                       │
│         (Gin + Middleware: Auth/Rate-Limit/CORS)        │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                    Controller Layer                     │
│              (Request Handlers & Validation)            │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                     Service Layer                       │
│         (Business Logic & Orchestration)                │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                      Model Layer                        │
│              (GORM v2 + Data Models)                    │
└─────────────────────────────────────────────────────────┘

                   Relay/Channel Layer
         (40+ Provider Adapters with Format Conversion)
技术用途说明
Go 1.22+后端语言高性能并发处理
GinWeb 框架轻量级 HTTP 路由
GORM v2ORM 框架多数据库支持
Redis缓存层会话与数据缓存
JWT认证令牌无状态身份验证

前端技术栈

技术用途说明
React 18UI 框架组件化开发
Vite构建工具极速热更新
Semi DesignUI 组件库抖音开源设计系统
i18next国际化6 种语言支持

数据库兼容性

项目采用 GORM 抽象层,实现 三库全兼容

  • SQLite:轻量级部署,Docker 默认配置
  • MySQL ≥ 5.7.8:生产环境推荐
  • PostgreSQL ≥ 9.6:企业级应用

项目亮点

1. 分层架构设计

采用经典的 Router → Controller → Service → Model 四层架构:

router/        — HTTP 路由定义
controller/    — 请求处理与参数验证
service/       — 核心业务逻辑
model/         — 数据持久化与缓存
relay/         — AI 提供商适配层

这种设计实现了高内聚、低耦合,便于团队协作和功能扩展。

2. 提供商适配器模式

relay/channel/ 目录下实现了 40+ 家 AI 服务商的适配器,每个适配器:

  • 实现统一的 Adapter 接口
  • 处理厂商特定的认证与请求格式
  • 支持流式与非流式响应
  • 自动处理错误重试逻辑
// relay/channel/adapter.go
type Adapter interface {
    Init(info *relaycore.RelayInfo)
    GetRequestURL(info *relaycore.RelayInfo) (string, error)
    SetupRequestHeader(header *http.Header, info *relaycore.RelayInfo)
    ConvertRequest(c *gin.Context, relayMode int, request *dto.GeneralOpenAIRequest) (interface{}, error)
    // ...
}

3. 格式转换引擎

实现了多种 AI 格式之间的无缝转换,包括:

  • OpenAI ↔ Claude Messages:保留完整上下文
  • OpenAI ↔ Gemini:支持函数调用转换
  • Thinking 模式处理:推理内容提取与展示

这使得用户可以用统一的 API 调用不同服务商的模型。

4. 多数据库兼容策略

通过以下设计实现三库兼容:

// 使用 GORM 抽象替代原生 SQL
db.Where("name = ?", "test").First(&user)

// 数据库特定逻辑分支
if common.UsingPostgreSQL {
    // PostgreSQL 特定代码
} else if common.UsingMySQL {
    // MySQL 特定代码
}

5. 国际化架构

  • 后端go-i18n 实现中英文切换
  • 前端i18next 实现 6 语言支持(中/英/法/俄/日/越)
  • CLI 工具:自动化提取、同步、检查翻译

界面展示

操练场

操练场

API 调试操练场,支持实时测试各类 AI 模型接口。

数据看板

数据看板

可视化数据看板,实时监控 API 调用量、消耗统计和渠道状态。


代码规模

指标数量
Go 代码行数~98,000 行
提供商适配器40+ 个
支持语言6 种
支持接口10+ 种

部署架构

Docker 部署

使用 SQLite(默认):

docker run -d --name new-api --restart always \
  -p 3000:3000 \
  -e TZ=Asia/Shanghai \
  -v ./data:/data \
  calciumion/new-api:latest

使用 MySQL:

docker run -d --name new-api --restart always \
  -p 3000:3000 \
  -e SQL_DSN="root:password@tcp(host:3306)/newapi" \
  -e TZ=Asia/Shanghai \
  -v ./data:/data \
  calciumion/new-api:latest

环境变量配置

变量说明默认值
SQL_DSN数据库连接字符串SQLite
SESSION_SECRETSession 密钥(多机部署必填)-
REDIS_CONN_STRINGRedis 连接字符串-
STREAMING_TIMEOUT流式响应超时(秒)300
TZ时区UTC

多机部署要点

  • 必须设置 SESSION_SECRET 保证登录状态一致
  • 共享 Redis 需设置 CRYPTO_SECRET 实现数据加密同步

贡献与影响

  • GitHub Stars: 持续增长中
  • 社区: 活跃的开源贡献者
  • 文档: 完善的中英文文档
  • 生态: 配套工具(neko-api-key-tool、new-api-horizon)

项目收获

通过参与和维护 New API 项目,我深入实践了:

  1. Go 语言工程实践:并发编程、接口设计、错误处理
  2. 微服务架构:服务分层、适配器模式、中间件设计
  3. 多数据库兼容:GORM 使用、SQL 抽象、迁移管理
  4. API 设计:RESTful 规范、版本管理、文档撰写
  5. DevOps:Docker 容器化、CI/CD 流程、环境配置管理
  6. 开源协作:Issue 管理、PR 审查、社区沟通

相关链接


许可证

本项目采用 GNU AGPL v3.0 开源许可。


本文档持续更新中,记录项目演进历程与技术细节。

Posted on:
April 21, 2025
Length:
3 minute read, 479 words
Categories:
开源项目 后端开发
Tags:
Go React AI API网关 微服务
See Also:
云商智搭电商平台