Files
ai/docs/system_b/04_技术架构设计_模块拆分.md
T
2026-06-15 17:45:28 +08:00

6.3 KiB
Executable File
Raw Blame History

04_技术架构设计_模块拆分

1. 文档目标

本文档定义系统 B 的技术架构、模块拆分、服务边界、基础设施和后续与系统 A 合并的预留方式。

2. 总体架构

uni-app 用户端
        ↓
NestJS API 服务
        ↓
MySQL / Redis / MinIO
        ↓
BullMQ 任务队列
        ↓
AI Provider Workers / FFmpeg Worker / Python Worker
        ↓
成品资源存储与交付

Geeker-Admin 后台
        ↓
NestJS Admin API
        ↓
模板、项目、订单、任务、Provider、日志管理

3. 技术栈

层级 技术
用户端 uni-app
后台端 Geeker-Admin
后端 Node.js + NestJS
数据库 MySQL 8
队列 Redis + BullMQ
对象存储 MinIO,本地优先,后续可换 OSS/COS/S3
视频合成 FFmpeg
AI 辅助 Python Worker 可选
进程管理 PM2 或 systemd
反向代理 Nginx
部署 AlmaLinux / Ubuntu 均可,推荐 Docker 化

4. 后端模块拆分

4.1 AuthModule

负责:

  • 手机号验证码登录
  • 微信授权登录
  • JWT 令牌
  • 后台管理员登录
  • 权限校验

4.2 UserModule

负责:

  • 用户信息
  • 用户状态
  • 用户项目列表
  • 用户订单列表
  • 用户隐私设置

4.3 ProjectModule

负责:

  • 创建项目
  • 项目状态流转
  • 项目详情
  • 项目进度
  • 项目归档

4.4 TemplateModule

负责:

  • 人生主题
  • 套餐
  • 风格
  • 世界观
  • 场景
  • 镜头
  • 文案模板
  • 音乐模板

4.5 AssetModule

负责:

  • 文件上传
  • 图片/视频/音频资源管理
  • 缩略图
  • 下载链接
  • 水印资源
  • 素材删除

4.6 PhotoModule

负责:

  • 照片上传规则
  • 照片质检任务创建
  • 人物角色归属
  • 人物档案创建

4.7 AIProviderModule

负责:

  • TextProvider
  • ImageProvider
  • VideoProvider
  • VoiceProvider
  • ModerationProvider
  • FaceCheckProvider
  • QualityCheckProvider

业务代码调用统一接口,不直接调用具体模型。

4.8 WorkflowModule

负责编排:

  • 创作方案生成
  • 预览图生成
  • 正式图生成
  • 音频/字幕生成
  • 视频合成
  • 最终质检

4.9 QueueModule

负责:

  • BullMQ 队列注册
  • 任务创建
  • 任务重试
  • 任务取消
  • 任务进度更新

4.10 OrderModule

负责:

  • 订单创建
  • 支付状态
  • 额度冻结
  • 额度扣减
  • 退款记录

4.11 RevisionModule

负责:

  • 修改申请
  • 修改次数校验
  • 修改任务创建
  • 人工处理记录

4.12 CaseModule

负责:

  • 首页案例
  • 案例上架/下架
  • 同款制作
  • 公开授权校验

4.13 AdminModule

负责后台管理接口,包括:

  • 用户管理
  • 项目管理
  • 订单管理
  • 模板管理
  • 任务管理
  • Provider 管理
  • 日志管理

4.14 ComplianceModule

负责:

  • 授权记录
  • 隐私协议确认
  • 未成年人授权确认
  • 内容审核
  • 用户删除申请

4.15 LogModule

负责:

  • 操作日志
  • 登录日志
  • AI 调用日志
  • 成本日志
  • 错误日志

5. AI Provider 抽象

Provider 接口:

interface TextProvider { generate(input): Promise<TextResult> }
interface ImageProvider { generate(input): Promise<ImageResult> }
interface VideoProvider { generate(input): Promise<VideoResult> }
interface VoiceProvider { synthesize(input): Promise<AudioResult> }
interface ModerationProvider { check(input): Promise<ModerationResult> }

配置来自数据库或环境变量,支持:

  • 优先级
  • 限流
  • 失败切换
  • 成本规则
  • 启用/禁用

6. 队列设计

队列:

photo_check_queue
text_queue
image_queue
video_queue
audio_queue
ffmpeg_queue
qc_queue
cleanup_queue

设计原则:

  1. 图像、视频、音频队列隔离。
  2. 高成本任务必须检查订单/额度。
  3. 任务必须有幂等 key。
  4. 失败后按策略重试。
  5. 多次失败转人工处理。

7. 存储设计

MinIO Bucket 建议:

uploads/       用户上传原图
previews/      预览图
generated/     正式生成图
videos/        成品视频
audios/        TTS 音频
subtitles/     字幕文件
cases/         公开案例资源
temp/          临时文件

原则:

  • 用户原图默认私密。
  • 成品下载使用签名链接。
  • 下载链接设置有效期。
  • 公开案例单独复制到 cases 路径。

8. 视频合成架构

第一阶段使用 FFmpeg

图片素材
+ 运镜参数
+ 字幕 SRT
+ 旁白音频
+ BGM
+ 转场配置
→ FFmpeg Worker
→ MP4 成品

视频等级:

  • L1:图片 + 运镜
  • L2:图片 + 简单粒子/光效叠加
  • L3:关键镜头图生视频
  • L4:高级动态视频

第一阶段建议主做 L1 + L2。

9. Python Worker 定位

Python 只做辅助:

  • 人脸检测
  • 清晰度检测
  • 图片相似度
  • 人像一致性评分
  • 图片裁切/缩放
  • 视频后处理

主业务不放 Python,避免双主系统复杂。

10. 后续与系统 A 合并预留

未来系统 A「原创小说 → 韩漫 / 漫剧」可复用:

  • AuthModule
  • UserModule
  • AssetModule
  • TemplateModule
  • AIProviderModule
  • QueueModule
  • WorkflowModule
  • OrderModule
  • LogModule
  • AdminModule

系统 B 独有:

  • 真人照片质检
  • 人物档案
  • 肖像授权
  • 人生主题写真模板

系统 A 独有:

  • 小说生成
  • 剧情大纲
  • 分集分镜
  • 漫剧角色库
  • 连载发布

11. V3 真人动态视频架构增量

V3 在系统 B 中新增以下模块:

IdentityAnchorModule:身份锚点、用户确认、后台确认
FaceConsistencyModule:本人相似度、人脸一致性质检、混脸检测
MotionTemplateModule:动作模板、动作 Prompt、动作成本等级
VideoClipModule:真人动态视频片段生成、预览、重试、替换、质检
LipSyncModule:口型任务、音频绑定、失败回退
RealVideoProviderModuleHailuo/Wan/Vidu/Seedance/Kling/Runway 配置与调用

架构原则:

  • 图片纪念视频继续走 FFmpeg,成本可控。
  • 动态写真和 AI 真人动态视频独立成片段任务,不复用最终视频合成接口直接调用高成本 Provider。
  • 真实视频 Provider 默认禁用,必须配置成本阈值和用户确认。
  • 每个视频片段单独落库,支持单片段重试和替换。
  • 口型是可选高级任务,失败时回退旁白字幕版本。

V3 推荐链路:

身份锚点
→ 关键帧
→ VideoProvider 生成片段
→ 片段质检
→ 可选口型
→ FFmpeg 合成
→ 最终质检