6.3 KiB
Executable File
6.3 KiB
Executable File
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
设计原则:
- 图像、视频、音频队列隔离。
- 高成本任务必须检查订单/额度。
- 任务必须有幂等 key。
- 失败后按策略重试。
- 多次失败转人工处理。
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:口型任务、音频绑定、失败回退
RealVideoProviderModule:Hailuo/Wan/Vidu/Seedance/Kling/Runway 配置与调用
架构原则:
- 图片纪念视频继续走 FFmpeg,成本可控。
- 动态写真和 AI 真人动态视频独立成片段任务,不复用最终视频合成接口直接调用高成本 Provider。
- 真实视频 Provider 默认禁用,必须配置成本阈值和用户确认。
- 每个视频片段单独落库,支持单片段重试和替换。
- 口型是可选高级任务,失败时回退旁白字幕版本。
V3 推荐链路:
身份锚点
→ 关键帧
→ VideoProvider 生成片段
→ 片段质检
→ 可选口型
→ FFmpeg 合成
→ 最终质检