Skip to content

tortb/toaiapi

Repository files navigation

ToAIAPI

企业级 AI 网关平台

统一管理所有大模型 API,支持主流 AI 编程工具。


功能特性

AI 模型支持

  • OpenAI(GPT-4o、GPT-4o-mini、o1、o3)
  • Anthropic(Claude Opus 4、Claude Sonnet 4、Claude Haiku 4)
  • Google(Gemini 2.5 Pro、Gemini 2.5 Flash)
  • DeepSeek(V3、R1)
  • Qwen(Qwen 3)
  • GLM(GLM-4)
  • Moonshot(Kimi)
  • Grok(Grok-3)

AI 编程工具

  • Claude Code
  • Codex CLI
  • Cursor
  • Roo Code
  • Cline
  • Windsurf
  • Continue

用户系统

  • 邮箱注册 / 登录
  • JWT 认证(Access Token + Refresh Token)
  • 密码重置
  • API Key 管理(创建、删除、启停、限流、模型白名单、IP 白名单)

计费系统

  • Token 使用追踪
  • 精确 Token 计量(Tokenizer)
  • 余额系统(充值、扣费、冻结、交易流水)
  • 模型定价管理(输入/输出/缓存/推理 分开计价)

网关核心

  • OpenAI 兼容接口(/v1/chat/completions/v1/models
  • 流式响应(SSE)
  • 多渠道故障转移
  • 渠道权重与优先级
  • 请求限流(多级:短期/中期/长期)

管理后台 API

  • Provider 管理(/admin/providers):CRUD + 关联检查
  • 渠道管理(/admin/channels):CRUD + 启禁用 + API Key 脱敏
  • 模型管理(/admin/models):CRUD + 定价管理
  • 用户管理(/admin/users):列表/详情/角色修改/状态管理

数据库设计

  • 用户、余额、交易流水
  • API Key(支持限流、模型/IP 白名单)
  • 模型与定价
  • Provider、渠道、渠道模型映射
  • 订单与支付
  • 套餐与订阅
  • 企业组织
  • 请求日志

架构

┌─────────────────────────────────────────────────────────────┐
│                        客户端层                               │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │ Claude   │  │  Cursor  │  │  Codex   │  │ Windsurf │    │
│  │  Code    │  │          │  │   CLI    │  │          │    │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘    │
└───────┼──────────────┼──────────────┼──────────────┼────────┘
        │              │              │              │
┌───────▼──────────────▼──────────────▼──────────────▼────────┐
│                      API 网关层                               │
│              限流 / 认证 / 日志 / 路由                         │
└────────────────────────────┬────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────┐
│                      后端服务层                               │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐          │
│  │  认证   │ │  网关   │ │  计费   │ │  Admin  │          │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘          │
└────────────────────────────┬────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────┐
│                       数据层                                 │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │  PostgreSQL  │  │    Redis     │  │   Prisma     │      │
│  │   (主库)     │  │   (缓存)    │  │   (ORM)      │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
└─────────────────────────────────────────────────────────────┘

技术栈

前端

  • 框架: Next.js + React
  • 语言: TypeScript
  • 样式: TailwindCSS + Shadcn/ui
  • 状态管理: Zustand + TanStack Query

后端

  • 框架: NestJS + Fastify
  • 语言: TypeScript
  • ORM: Prisma
  • API 文档: Swagger / OpenAPI

数据库

  • 主库: PostgreSQL
  • 缓存: Redis

基础设施

  • Monorepo: pnpm workspace + Turbo
  • 包管理: pnpm

快速开始

环境要求

  • Node.js >= 20
  • pnpm 9+
  • PostgreSQL 16+
  • Redis 7+

安装

# 克隆仓库
git clone https://github.com/your-username/toaiapi.git
cd toaiapi

# 安装依赖
pnpm install

# 配置环境变量
cp .env.example .env

数据库

# 生成 Prisma Client
pnpm db:generate

# 运行数据库迁移
pnpm db:migrate

# 初始化数据(创建管理员账号等)
cd apps/backend && npx prisma db seed

# 打开 Prisma Studio(可视化管理数据库)
pnpm db:studio

启动服务

# 启动后端(默认端口 3001)
cd apps/backend && npm run start:dev

# 启动前端(默认端口 3000)
cd apps/frontend && npm run dev

# 或同时启动所有服务
pnpm dev

默认管理员账号

字段
邮箱 admin@toaiapi.com
密码 Admin@123456
后台地址 http://localhost:3000/admin

⚠️ 首次登录后请立即修改默认密码。

常用命令

# 开发
pnpm dev                    # 启动所有服务
pnpm build                  # 构建所有包
pnpm test                   # 运行测试
pnpm lint                   # 代码检查

# 数据库
pnpm db:generate            # 生成 Prisma Client
pnpm db:migrate             # 运行迁移
pnpm db:push                # 推送 Schema 变更
pnpm db:studio              # 打开 Prisma Studio

# 单个包
pnpm --filter @toai/backend dev
pnpm --filter @toai/frontend dev

项目结构

toaiapi/
├── apps/
│   ├── frontend/           # Next.js 前端
│   ├── admin/              # 管理后台(规划中)
│   └── backend/            # NestJS 后端
├── packages/
│   ├── sdk/                # 客户端 SDK
│   ├── billing/            # 计费核心逻辑
│   ├── gateway/            # 网关核心逻辑
│   ├── auth/               # 认证授权
│   └── common/             # 公共工具与类型
├── docs/                   # 项目文档
├── .ai/                    # AI 开发规则
└── CLAUDE.md               # Claude Code 配置

文档


贡献

提交 PR 前请阅读 CONTRIBUTING.md


安全

如需报告安全漏洞,请阅读 SECURITY.md


开源协议

本项目基于 MIT 协议开源,详见 LICENSE


致谢

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages