字数 5340,阅读大约需 27 分钟
AI API Token 中转站 — 技术方案与功能设计报告
一个轻量级的 AI API 代理服务,将多个 AI 供应商(OpenAI、Anthropic、DeepSeek 等)统一为兼容 OpenAI 格式的 API 接口,提供用户管理、计费、配额控制和多渠道负载均衡。
1. 行业背景与市场现状
1.1 痛点分析
国内开发者使用 AI 大模型 API 时面临三大核心痛点:
| |
|---|
| 支付门槛 | OpenAI、Anthropic 等海外厂商仅支持外币信用卡,国内多数开发者无 Visa/Mastercard |
| 网络限制 | 部分海外 AI 服务在中国大陆访问受限,需要海外服务器中转 |
| 管理复杂 | 多家 AI 厂商的 API 格式各异,需分别对接、分别计费、分别管理 |
1.2 解决方案
Token 中转站(API Relay) 本质是一个 API 代理层,位于终端用户与 AI 厂商之间,提供统一接口、计费管理和负载均衡能力。
1.3 产业链角色
上游(AI 厂商) 中游(Token 中转站) 下游(终端用户)
┌──────────────┐ ┌──────────────────────┐ ┌────────────────┐
│ OpenAI │ │ │ │ 个人开发者 │
│ Anthropic │◄───►│ API 统一网关 │◄───►│ 中小企业 │
│ Google │ │ + 计费 + 管理 │ │ 研究团队 │
│ DeepSeek │ │ │ │ AI 应用产品 │
│ 阿里/百度/字节│ └──────────────────────┘ └────────────────┘
└──────────────┘
2. 核心原理与运作机制
2.1 核心工作流程
客户端请求 中转站处理 上游AI厂商
│ │ │
│ ① 发送 OpenAI 格式请求 │ │
│ (携带中转站 Token) │ │
│───────────────────────────►│ │
│ │ ② 认证鉴权 │
│ │ (验证 Token 合法性 + 额度) │
│ │ │
│ │ ③ 模型匹配 & 渠道路由 │
│ │ (解析 model 参数选渠道) │
│ │ │
│ │ ④ 协议转换(适配器模式) │
│ │ (OpenAI格式 → 厂商原生格式) │
│ │ │
│ │ ⑤ 请求转发 + 负载均衡 │
│ │────────────────────────────►│
│ │ │
│ │ ⑥ 上游返回响应 │
│ │◄────────────────────────────│
│ │ │
│ │ ⑦ 协议反转换 │
│ │ (厂商格式 → OpenAI标准格式) │
│ │ │
│ │ ⑧ Token 计费 + 日志记录 │
│ │ │
│ ⑨ 返回标准 OpenAI 响应 │ │
│◄───────────────────────────│ │
2.2 适配器模式(核心设计模式)
系统采用 适配器模式(Adapter Pattern) 实现多厂商 API 的协议转换:
┌──────────────────┐
│ 统一请求入口 │
│ /v1/chat/ │
│ completions │
└────────┬─────────┘
│
┌────────▼─────────┐
│ 路由调度器 │
│ (根据 model │
│ 参数选择适配器) │
└────────┬─────────┘
│
┌──────────┬───────┼───────┬──────────┐
▼ ▼ ▼ ▼ ▼
┌──────────┐┌────────┐┌──────┐┌──────┐┌──────────┐
│ OpenAI ││ Claude ││Gemini││ 阿里 ││ DeepSeek │
│ Adaptor ││Adaptor ││Adapt.││Adapt.││ Adaptor │
└────┬─────┘└───┬────┘└──┬───┘└──┬───┘└────┬─────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌──────────┐┌────────┐┌──────┐┌──────┐┌──────────┐
│ OpenAI ││Anthro- ││Google││ 阿里 ││ DeepSeek │
│ API ││ pic API││ API ││ API ││ API │
└──────────┘└────────┘└──────┘└──────┘└──────────┘
每个适配器封装了:
- • 请求转换:OpenAI 标准格式 → 厂商原生 API 格式
- • 响应转换:厂商原生响应 → OpenAI 标准格式
- • 特殊参数处理:如 Claude 的 thinking 模式、Gemini 的安全设置等
3. 系统整体架构设计
3.1 分层架构
┌───────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ Web管理后台 │ 第三方应用(OpenAI SDK) │ 移动端/CLI │
└───────────┬─────────────────┬───────────────────┬─────────────┘
│ │ │
┌───────────▼─────────────────▼───────────────────▼─────────────┐
│ Nginx 反向代理层 │
│ SSL终止 │ 负载均衡 │ WebSocket代理 │ 限流 │
└───────────┬─────────────────┬───────────────────┬─────────────┘
│ │ │
┌───────────▼─────────────────▼───────────────────▼─────────────┐
│ 应用服务层 (Go) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ API 网关 / 中继层 (/v1/*) │ │
│ │ 认证 → 限流 → 路由 → 协议转换 → 转发 → 计费 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 管理后台 (/api/*) │ │
│ │ 用户管理 │ 渠道管理 │ 令牌管理 │ 财务管理 │ 数据统计 │ │
│ └──────────────────────────────────────────────────────────┘ │
└───────────┬──────────────────────────────────────────────────┘
│
┌───────────▼──────────────────────────────────────────────────┐
│ 数据存储层 │
│ MySQL / PostgreSQL │ Redis缓存 │ 文件存储 │
└──────────────────────────────────────────────────────────────┘
│
┌───────────▼──────────────────────────────────────────────────┐
│ 外部服务集成层 │
│ OpenAI │ Claude │ Gemini │ 阿里 │ 百度 │ DeepSeek │ 支付 │
└──────────────────────────────────────────────────────────────┘
3.2 请求处理流水线
请求进入 → 认证鉴权 → 限流检查 → 额度检查 → 模型解析 →
渠道路由 → 协议转换 → 请求转发 → 响应处理 → 计费统计 → 返回响应
每一步都是一个中间件或处理器,可以独立扩展和替换。
4. 技术栈选型
4.1 推荐技术栈
| | |
|---|
| 后端语言 | | |
| 后端框架 | | |
| 前端框架 | | |
| UI 组件库 | | |
| 数据库 | MySQL ≥ 5.7 / PostgreSQL ≥ 9.6 | |
| 缓存 | | |
| 反向代理 | | |
| 容器化 | | |
| 支付集成 | | |
| 日志 | | |
4.2 关键技术决策
5. 详细功能模块设计
5.1 功能架构总览
┌─────────────────────────────────────────────────────────────────┐
│ AI API Token 中转站 │
├──────────┬──────────┬──────────┬──────────┬────────────────────┤
│ API网关 │ 渠道管理 │ 用户系统 │ 计费系统 │ 运营管理 │
│ 模块 │ 模块 │ 模块 │ 模块 │ 模块 │
├──────────┼──────────┼──────────┼──────────┼────────────────────┤
│·请求路由 │·多渠道配置│·注册/登录 │·Token计费 │·数据看板 │
│·协议转换 │·负载均衡 │·角色权限 │·余额管理 │·公告系统 │
│·认证鉴权 │·自动重试 │·令牌管理 │·充值支付 │·邀请奖励 │
│·限流控制 │·健康检查 │·组织管理 │·用量统计 │·兑换码 │
│·流式代理 │·模型映射 │·Key分发 │·账单明细 │·通知系统 │
│·错误处理 │·优先级管理│·用户分组 │·价格配置 │·日志审计 │
└──────────┴──────────┴──────────┴──────────┴────────────────────┘
5.2 API 网关模块
统一请求入口
| |
|---|
| OpenAI 兼容接口 | 完全兼容 /v1/chat/completions、/v1/completions、/v1/embeddings 等标准端点 |
| 流式响应代理 | |
| WebSocket 支持 | 支持 OpenAI Realtime API 的 WebSocket 连接 |
| 多模态请求 | |
| 函数调用 | 支持 Function Calling / Tool Use |
认证与鉴权
| |
|---|
| Token 验证 | 验证 Authorization: Bearer sk-xxxx 中的令牌合法性 |
| 令牌额度检查 | |
| 模型权限 | |
| IP 白名单 | |
| 子令牌 | |
限流控制
协议转换引擎
| |
|---|
| |
| 消息格式转换(system/user/assistant → Anthropic 格式) |
| 转换为 Google Generative AI 格式 |
| |
| |
| |
5.3 渠道管理模块
| |
|---|
| 渠道配置 | 添加上游 AI 服务商,配置 Base URL、API Key、模型列表 |
| 渠道类型 | 支持 OpenAI、Azure、Anthropic、Google、阿里等数十种 |
| 优先级管理 | |
| 权重分配 | |
| 自动重试 | 请求失败时自动切换到下一渠道重试(可配置重试次数) |
| 状态码复写 | |
| 健康检查 | |
| 模型映射 | 支持模型名称重定向(如 gpt-4 → gpt-4-turbo) |
| 渠道分组 | |
渠道路由示例:
用户请求 model=gpt-4o
├── 渠道A: OpenAI官方 (优先级1, 权重3) → 75% 流量
├── 渠道B: Azure OpenAI (优先级1, 权重1) → 25% 流量
├── 渠道C: 备用渠道 (优先级2, 仅重试)
└── 渠道D: 已自动禁用 (连续失败超阈值)
5.4 用户系统模块
| |
|---|
| 用户注册/登录 | 邮箱、手机号、第三方 OAuth(GitHub、Google、Telegram) |
| 角色权限 (RBAC) | |
| 用户组管理 | |
| 令牌管理 | 创建/删除 API Token,设置额度上限、过期时间、可用模型 |
| 令牌子管理 | |
| 组织管理 | |
| 用户封禁 | |
令牌管理界面示意:
┌──────────────────────────────────────┐
│ 令牌 (API Key) 管理 │
├──────────────────────────────────────┤
│ 令牌名称: my-project-key │
│ 令牌值: sk-abc123def456... │
│ 额度上限: ¥500.00 │
│ 已用额度: ¥123.45 │
│ 剩余额度: ¥376.55 │
│ 过期时间: 2026-12-31 │
│ 可用模型: gpt-4o, claude-3.5, ... │
│ 子令牌数: 3 │
│ 状态: ● 活跃 │
├──────────────────────────────────────┤
│ [创建子令牌] [重置密钥] [禁用] │
└──────────────────────────────────────┘
5.5 计费系统模块
| |
|---|
| 精确 Token 计费 | 根据每次请求的 prompt_tokens + completion_tokens 精确计费 |
| 模型价格配置 | |
| 价格倍率 | |
| 缓存计费 | |
| 按次计费 | 部分模型支持按次固定计费(如 Midjourney) |
| 充值系统 | |
| 充值套餐 | |
| 余额管理 | |
| 账单导出 | |
| 额度预警 | |
计费公式:
单次请求费用 = (prompt_tokens × 输入单价 + completion_tokens × 输出单价) × 用户组倍率
示例价格表:
5.6 运营管理模块
| |
|---|
| 数据看板 | |
| 用量统计 | 按 User/Token/Model/Channel 维度的用量统计图表 |
| 公告系统 | |
| 邀请奖励 | |
| 兑换码 | |
| 通知系统 | 邮件/Telegram/微信通知(余额预警、系统维护等) |
| 日志审计 | |
| 系统配置 | |
5.7 支持的 AI 模型与服务
大语言模型 (LLM)
| |
|---|
| OpenAI | GPT-4o, GPT-4o-mini, o1, o3-mini |
| Anthropic | Claude-3.5-Sonnet, Claude-3.5-Haiku |
| Google | Gemini-2.0-Flash, Gemini-1.5-Pro |
| DeepSeek | |
| 阿里 | |
| 百度 | |
| 字节跳动 | |
| 智谱AI | |
| 本地部署 | |
多模态与特殊服务
| |
|---|
| Midjourney | 通过 Midjourney-Proxy 对接,文生图/图生图 |
| Suno | |
| DALL-E 3 | |
| Rerank | |
| Embeddings | |
| Whisper | |
| TTS | |
6. 数据库设计
6.1 核心数据表
| |
|---|
users | |
tokens | |
channels | |
models | |
logs | |
tasks | 异步任务表(Midjourney、Suno 等异步任务) |
redemptions | |
topups | |
groups | |
settings | |
6.2 关键表结构
users 表
channels 表
logs 表
7. 部署与运维方案
7.1 推荐部署架构
┌─────────────┐
│ Cloudflare │
│ CDN / DNS │
└──────┬──────┘
│
┌──────▼──────┐
│ 海外 VPS │
│ (Nginx+SSL) │
└──────┬──────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌────────┐┌──────────┐┌──────────┐
│中转站 ││中转站 ││中转站 │
│实例 1 ││实例 2 ││实例 3 │
│(Docker)││(Docker) ││(Docker) │
└───┬────┘└────┬─────┘└────┬─────┘
└──────────┼───────────┘
│
┌──────▼──────┐
│ MySQL + Redis│
└─────────────┘
7.2 服务器要求
⚠️ 重要:服务器必须位于海外,确保能直接访问 OpenAI、Anthropic 等 AI 厂商 API。
7.3 Docker Compose 部署模板
version: '3'
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
- SQL_DSN=root:password@tcp(mysql:3306)/newapi
- REDIS_CONN_STRING=redis://redis:6379
- SESSION_SECRET=your-session-secret
- CRYPTO_SECRET=your-crypto-secret
depends_on:
- mysql
- redis
volumes:
- ./data:/data
mysql:
image: mysql:8.0
restart: always
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=newapi
volumes:
- ./mysql-data:/var/lib/mysql
redis:
image: redis:7
restart: always
volumes:
- ./redis-data:/data
nginx:
image: nginx:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/ssl:/etc/nginx/ssl
depends_on:
- new-api
7.4 Nginx 关键配置要点
server {
listen 443 ssl http2;
server_name your-domain.com;
# SSL 证书
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
# 关键:SSE 流式响应需要的缓冲配置
proxy_buffering off;
proxy_cache off;
# 关键:超时时间要足够长(AI 响应可能较慢)
proxy_read_timeout 300s;
proxy_send_timeout 300s;
location / {
proxy_pass http://new-api:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
8. 商业模式与盈利模式
8.1 盈利方式
8.2 成本优化策略
| |
|---|
| 批量采购 | |
| 多账号池 | 多个 API Key 轮询使用,避免单 Key 限流 |
| 智能路由 | |
| 模型重定向 | |
| 缓存复用 | |
9. 安全与合规
9.1 安全措施
| |
|---|
| HTTPS 强制 | |
| API Key 加密 | |
| 密码哈希 | |
| SQL 注入防护 | |
| XSS 防护 | |
| 限流防刷 | |
| 数据加密 | |
9.2 合规红线
9.3 合规建议
10. 开源方案对比与选型建议
10.1 三大主流开源方案对比
| | | |
|---|
| GitHub Stars | | | |
| 核心定位 | | | |
| 开发语言 | | | |
| 多模型支持 | | LLM + 多模态(Midjourney/Suno) | |
| 权限管理 | | | |
| 支付系统 | | | |
| 数据看板 | | | |
| 部署难度 | | | |
| UI 美观度 | | | |
| 适用场景 | | | |
| 社区活跃度 | | | |
10.2 选型建议
| | |
|---|
| 快速体验/学习 | | |
| 个人使用/小团队 | | |
| 商业化运营 | | |
| 企业内部使用 | | |
11. 启动资金预估
11.1 最低启动成本(副业级别)
| | |
|---|
| | AWS Lightsail / Vultr / Oracle Cloud |
| | |
| | |
| 总计启动 | ¥2,000-5,000 | |
11.2 规模化运营成本
12. 总结与建议
12.1 项目关键成功要素
- 1. 稳定性第一:多渠道备份 + 自动重试 + 健康检查是核心竞争力
- 2. 成本控制:批量采购 + 智能路由 + 模型重定向降低运营成本
- 3. 用户体验:OpenAI 格式兼容让用户零迁移成本
- 4. 合规运营:只用正规渠道 API Key,建立良好口碑
12.2 推荐实施路径
Phase 1(第1-2周):环境搭建
├── 购买海外 VPS + 域名
├── Docker 部署 New-API
└── 配置 Nginx + SSL
Phase 2(第2-3周):基础配置
├── 添加上游渠道(OpenAI/Claude/DeepSeek 等)
├── 配置模型价格与计费规则
└── 创建测试令牌并验证功能
Phase 3(第3-4周):商业化准备
├── 接入支付系统
├── 配置注册/充值/兑换码流程
└── 设计定价策略
Phase 4(持续运营):
├── 监控数据看板,优化渠道配置
├── 用户反馈收集,功能迭代
└── 规模扩展(多实例 + 数据库优化)
12.3 风险提示
- • 政策风险:AI API 转售处于监管灰色地带,需关注政策变化
- • 上游风险:AI 厂商可能调整 API 政策或封禁转售账号
- • 竞争风险:门槛较低,市场竞争激烈,需在服务质量和价格上建立优势
- • 技术风险:大模型 API 格式频繁变更,需持续维护适配器
免责声明:本报告仅供技术学习和研究参考。实际运营需遵守当地法律法规,确保合规经营。请勿用于任何违法用途。