# 04_技术架构设计_模块拆分 ## 1. 文档目标 本文档定义系统 B 的技术架构、模块拆分、服务边界、基础设施和后续与系统 A 合并的预留方式。 ## 2. 总体架构 ```text 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 接口: ```ts interface TextProvider { generate(input): Promise } interface ImageProvider { generate(input): Promise } interface VideoProvider { generate(input): Promise } interface VoiceProvider { synthesize(input): Promise } interface ModerationProvider { check(input): Promise } ``` 配置来自数据库或环境变量,支持: - 优先级 - 限流 - 失败切换 - 成本规则 - 启用/禁用 ## 6. 队列设计 队列: ```text 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 建议: ```text uploads/ 用户上传原图 previews/ 预览图 generated/ 正式生成图 videos/ 成品视频 audios/ TTS 音频 subtitles/ 字幕文件 cases/ 公开案例资源 temp/ 临时文件 ``` 原则: - 用户原图默认私密。 - 成品下载使用签名链接。 - 下载链接设置有效期。 - 公开案例单独复制到 cases 路径。 ## 8. 视频合成架构 第一阶段使用 FFmpeg: ```text 图片素材 + 运镜参数 + 字幕 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 中新增以下模块: ```text IdentityAnchorModule:身份锚点、用户确认、后台确认 FaceConsistencyModule:本人相似度、人脸一致性质检、混脸检测 MotionTemplateModule:动作模板、动作 Prompt、动作成本等级 VideoClipModule:真人动态视频片段生成、预览、重试、替换、质检 LipSyncModule:口型任务、音频绑定、失败回退 RealVideoProviderModule:Hailuo/Wan/Vidu/Seedance/Kling/Runway 配置与调用 ``` 架构原则: - 图片纪念视频继续走 FFmpeg,成本可控。 - 动态写真和 AI 真人动态视频独立成片段任务,不复用最终视频合成接口直接调用高成本 Provider。 - 真实视频 Provider 默认禁用,必须配置成本阈值和用户确认。 - 每个视频片段单独落库,支持单片段重试和替换。 - 口型是可选高级任务,失败时回退旁白字幕版本。 V3 推荐链路: ```text 身份锚点 → 关键帧 → VideoProvider 生成片段 → 片段质检 → 可选口型 → FFmpeg 合成 → 最终质检 ```