一、立项背景与目标
随着 AI 大模型能力的快速发展,企业对"AI 能力即服务"的需求日益增长。本项目旨在构建一个 SaaS 化的 AI 工作流自动化平台,让用户通过订阅套餐获取积分,按需消费平台上集成的各类 AI 模型与组件服务(文本生成、图像处理、视频合成、音频转写等)。项目核心目标包括:提供灵活的套餐订阅与积分计费体系、支持多租户隔离的 B2B 模式、构建可扩展的 AI 组件与模型管理后台。
二、核心功能模块
系统采用 FastAPI + MongoDB + Redis 后端 + React 18 + Ant Design 5 前端的技术架构,分为以下核心模块:
1. 系统管理模块(module_admin)
用户、角色、菜单、部门、岗位、字典、系统配置等基础 RBAC 权限管理,基于 RuoYi 框架改造,已全面迁移至 MongoDB(Motor 异步驱动)。
2. AI 服务管理模块(module_package)
管理 AI 模型(多通道路由、厂商品牌标识)、模型别名、功能组件库、组件与模型关联关系、定价模板(按 quality/quantity/duration 等维度配置积分倍率)。
3. 套餐订阅模块(module_subscription)
套餐类型(月付/季付)、套餐定义(含服务项目与积分额度)、用户订阅管理(聚合视图 + 明细记录双表模式)、积分体系(套餐积分/购买积分/赠送积分,支持月度重置与滚存)、套餐升级(新购叠加模式)。
4. 支付模块(module_payment)
集成 Stripe 与 Airwallex 支付网关,支持订阅制 Checkout、自动续费、Webhook 回调处理。
5. 定时任务模块(module_task)
套餐过期清理、积分月度重置、购买积分过期、超时订单取消等后台调度任务。
6. 多租户体系
采用共享数据库 + tenantId 字段方案,所有业务集合均支持租户级数据隔离。
三、业务流程与功能路径
用户订阅消费主流程:
用户注册 → 系统自动分配免费默认套餐 → 用户浏览套餐列表选择升级 → 通过 Stripe/Airwallex 完成支付 → 系统创建购买记录与用户套餐明细 → 用户获得对应积分额度 → 用户在前端选择 AI 组件与模型 → 系统根据基础积分×各维度倍率计算最终消耗 → 按优先级(叠加积分→当前套餐积分→购买积分)扣减 → 调用 AI 服务返回结果。
套餐升级路径:
用户发起升级 → 新购高级套餐 → 原套餐标记为 SUPERSEDED(剩余积分保留叠加至新套餐)→ 新套餐生效,积分合并可用。
管理后台路径:
管理员通过后台配置 AI 模型与组件 → 设置定价模板(维度与倍率)→ 关联组件与模型 → 创建套餐并绑定服务项目与积分额度 → 发布后用户端可见可购。
一、架构与技术栈
前后端分离 + 多租户架构(共享数据库 + tenantId 隔离)。后端 FastAPI + MongoDB Motor + Redis,前端 React 18 + TypeScript + Ant Design 5,支付集成 Stripe/Airwallex 订阅制,APScheduler 驱动 5 个定时任务。后端分层 Controller → Service → DAO → MongoDB,28 个集合、100 个索引,覆盖系统管理、AI 服务、套餐订阅、积分计费、支付、定时任务六大模块。
二、我的职责与成果
独立完成全部架构设计与开发:
后端 241 个文件、4.3 万行代码、200+ API 端点,前端四大路由模块全套页面
将原 SQLAlchemy + MySQL 全量迁移至 MongoDB Motor 异步驱动,2 天完成 10 阶段,重写 18+ 个 DAO,消除 4 张关联表改为文档内嵌数组
套餐系统从 V1.1 迭代至 V2.7(7 个大版本、3 次重大架构变更),设计积分计算引擎(基础积分 × 多维度倍率叠乘 + 三层优先级扣减 + 冻结/解冻并发控制)
配套完整文档体系:7 个子模块文档 + API 文档 + 数据字典 + 错误码规范 + 4 个种子数据脚本
三、难点与解决方案
ORM 范式转换:MySQL 多表 JOIN 改为 MongoDB 多步查询,关联表消除为嵌入数组,数据权限条件用 $and 封装避免 dict key 覆盖。
唯一索引 + 逻辑删除连环坑:MongoDB 将 null 视为有效索引值,软删除用户仍占索引位。解决:null 字段用 $unset 替代 $set,唯一索引加 partialFilterExpression 限定活跃记录。
同步调度 vs 异步 DAO:APScheduler 同步执行但 Motor 全异步,通过 asyncio.create_task() 桥接。
套餐架构反复迭代:积分体系经 7 版演进,从套餐耦合+补差价升级,最终稳定为独立积分明细 + 新购叠加模式 + 三层优先级扣减。