27 KiB
27 KiB
Current Architecture
生成时间:2026-06-15
扫描范围:/www/wwwroot/ai 源码、Prisma schema、前后台入口、Provider/Router/Live Action/Media 实现。
1. 系统整体架构图
用户端 H5 / uni-app
user-app/src/pages/index/index.vue
|
| REST API + JWT + 可选加密传输
v
NestJS Backend
backend/src/app.module.ts
|
|---------------- Auth / Users / Billing
|---------------- Projects / Novels / Story Bible
|---------------- Characters / Memories / Episodes
|---------------- Scripts / Images / Media
|---------------- Live Action / AI Router / Providers
|---------------- Reviews / Admin / Queues
|
v
MySQL 8
Prisma schema: backend/prisma/schema.prisma
|
+--> RenderTask / ProviderLog / OperationLog / Asset
|
v
Storage
local storage: storage/private
MinIO 预留: backend/src/assets/storage.service.ts
后台管理端
admin/src/App.vue
|
| Provider 配置 / Router 审计 / 任务审计 / 用户项目管理
v
NestJS Admin API
Worker 预留
workers/src/main.ts
|
| BullMQ 队列 worker 框架
v
Redis / BullMQ
AI Provider 抽象层
backend/src/providers/providers.service.ts
|
| mock / OpenAI / DeepSeek / MiniMax / Hailuo / Kling / Runway / Gemini 等
v
第三方 AI 平台
FFmpeg
|
| 图片/音频/字幕合成 MP4
| 真人视频片段拼接、裁切、字幕、BGM、SFX、响度归一
v
最终视频 Asset
2. 核心模块
后端模块
| 模块 | 主要职责 | 关键文件 |
|---|---|---|
| Auth / Users | 注册、登录、JWT、RBAC | backend/src/auth/*, backend/src/users/* |
| Projects | 项目创建、状态、输入/输出模式 | backend/src/projects/* |
| Assets / Storage | 上传、下载、私有素材、本地/MinIO 存储 | backend/src/assets/* |
| Novels | AI 原创小说、上传小说解析、章节拆分 | backend/src/novels/* |
| Story Bibles | 故事圣经生成/确认 | backend/src/story-bibles/* |
| Characters | 角色抽取、角色确认、角色锚点、全局角色关联 | backend/src/characters/* |
| Memories | 长篇记忆、剧情线 | backend/src/memories/* |
| Episodes | 分集计划生成/确认 | backend/src/episodes/* |
| Scripts | 单集脚本、分镜脚本 | backend/src/scripts/* |
| Images | 分镜图、角色图 mock/Provider 抽象 | backend/src/images/* |
| Media | 多角色 TTS、字幕、普通 FFmpeg 合成 | backend/src/media/* |
| Live Action | 真人短剧:演员定妆、真人分镜、关键帧、视频片段、质检、合成 | backend/src/live-action/* |
| AI Router | 镜头评分、自动选 Provider、fallback、成本判断 | backend/src/ai-router/* |
| Providers | Provider 配置、执行、日志、成本、bootstrap | backend/src/providers/* |
| Billing | 额度账户、冻结额度、成本预估 | backend/src/billing/* |
| Reviews | 文本/视频审核、公开案例授权 | backend/src/reviews/* |
| Queues | 任务查询、worker task 入口 | backend/src/queues/* |
| Admin | 后台项目、Provider、日志、审计、Router 视图 | backend/src/admin/* |
| Common | API 响应、异常、加密、中间件、HTTPS 检查 | backend/src/common/* |
前端模块
| 模块 | 主要职责 | 关键文件 |
|---|---|---|
| 用户端制作台 | 创建项目、上传/原创、版权、故事、角色、分集、脚本、真人视频、合成、审核、成品 | user-app/src/pages/index/index.vue |
| 用户端 API Client | 用户端 REST API 封装、错误文案、上传下载、真人视频接口 | user-app/src/api/client.ts |
| 用户端工作流 | 状态标签、进度计算、任务类型显示 | user-app/src/workflow.ts |
| 用户端样式 | 深色运营台风格、单列制作流程、响应式 UI | user-app/src/styles.css |
| 后台端 | Provider 配置、AI 平台入口、Router 审计、任务审计、项目管理 | admin/src/App.vue |
Worker 模块
workers/src/main.ts 已有 BullMQ worker 框架,队列名包含:
novel_queuestory_queuecharacter_queueepisode_queuescript_queuestoryboard_queueimage_queueaudio_queuesubtitle_queuevideo_queuereview_queue
当前大量生成动作仍由 API 同步触发并写 RenderTask,队列化已有框架和部分后端队列入口,但仍需要继续把重任务全面迁移到 worker。
3. 数据表关系
主业务链路
users
└─ projects
├─ novel_sources
│ └─ novel_chapters
├─ copyright_records
├─ story_bibles
├─ world_bibles
├─ characters
│ ├─ character_images
│ └─ character_memories
├─ plot_memories
├─ plot_threads
├─ episodes
│ ├─ episode_scripts
│ ├─ storyboard_shots
│ │ ├─ shot_images
│ │ └─ video_clips
│ └─ render_tasks
├─ assets
├─ content_reviews
├─ case_showcases
├─ project_creative_patterns
└─ analytics_events
AI/任务/审计链路
provider_configs
├─ provider_logs
└─ render_tasks.provider_id
render_tasks
├─ assets(output_asset_id)
├─ provider_logs(task_id)
└─ quota_logs(task_id)
operation_logs
└─ target_type + target_id 记录用户/后台/Router 操作轨迹
system_configs
└─ ai.router.v1 / security.api_crypto_enabled / current_stage
角色库链路
global_characters
└─ global_character_assets
projects
└─ characters.global_character_id
├─ character_images
└─ actor_profiles
爆款诊断 / 模式库
hit_analysis_cases
└─ hit_analysis_segments
└─ creative_patterns
└─ project_creative_patterns
关键表说明
| 表 | 作用 |
|---|---|
users |
用户和管理员账号 |
projects |
项目主表,区分 ai_original/upload 和 image_manga/motion_comic/live_action_ai |
novel_sources, novel_chapters |
原创/上传小说源和章节 |
story_bibles, world_bibles |
故事圣经、世界观设定 |
characters, global_characters |
项目角色和全局角色库 |
character_images, actor_profiles |
角色锚点图、真人演员定妆 |
episodes, episode_scripts, storyboard_shots |
分集、脚本、分镜 |
shot_images |
分镜图/关键帧 |
video_clips |
真人视频片段 |
assets |
私有/公开素材,包括小说、图片、音频、字幕、视频 |
render_tasks |
生成任务、输入 JSON、成本、错误、输出素材 |
provider_configs |
AI Provider 配置 |
provider_logs |
Provider 调用日志、请求/响应摘要、成本 |
content_reviews |
文本/视频审核 |
quota_accounts, quota_logs |
用户额度 |
system_configs |
系统配置,包括 Router 配置 |
operation_logs |
操作日志和审计时间线 |
4. AI Provider 列表
Provider 默认模板来源:
backend/src/providers/provider.types.tsbackend/prisma/seed.tsbackend/prisma/migrations/20260602130000_domestic_video_providers/migration.sql
Mock Provider
| Provider Code | 类型 |
|---|---|
mock-text |
TextProvider |
mock-novel |
NovelProvider |
mock-image |
ImageProvider |
mock-video |
VideoProvider |
mock-voice |
VoiceProvider |
mock-lipsync |
LipSyncProvider,默认禁用 |
mock-moderation |
ModerationProvider |
mock-qc |
QualityCheckProvider |
mock-file-parse |
FileParseProvider |
mock-embedding |
EmbeddingProvider |
OpenAI
| Provider Code | 类型 | 默认模型 |
|---|---|---|
openai-responses-text |
TextProvider | gpt-5.5 |
openai-responses-novel |
NovelProvider | gpt-5.5 |
openai-moderation |
ModerationProvider | omni-moderation-latest |
openai-embedding |
EmbeddingProvider | text-embedding-3-small |
openai-image |
ImageProvider | gpt-image-2 |
openai-video |
VideoProvider | sora-2 |
openai-tts |
VoiceProvider | gpt-4o-mini-tts |
视频 Provider
| Provider Code | 平台/模型 | 默认状态 |
|---|---|---|
minimax_hailuo_23_fast |
MiniMax Hailuo 2.3 Fast 图生视频 | 默认禁用,当前服务器已启用过 |
minimax_hailuo_23 |
MiniMax Hailuo 2.3 图生视频 | 默认禁用 |
alibaba_wan26_i2v_flash |
阿里 Wan2.6 I2V Flash | 默认禁用 |
alibaba_wan26_i2v |
阿里 Wan2.6 I2V 标准 | 默认禁用 |
vidu_q3_turbo_reference |
Vidu Q3 Turbo 参考图生视频 | 默认禁用 |
vidu_q3_pro |
Vidu Q3 Pro 参考图生视频 | 默认禁用 |
jimeng_seedance |
即梦/Seedance 图生视频 | 默认禁用 |
runway-image-to-video |
Runway Image-to-Video | 默认禁用 |
kling-image-to-video |
Kling Image-to-Video | 默认禁用 |
google-veo-video |
Google Veo Video | 默认禁用 |
replicate-video |
Replicate Video | 默认禁用 |
fal-video |
fal.ai Video | 默认禁用 |
luma-ray-video |
Luma Ray Video | 默认禁用 |
pika-video |
Pika Video | 默认禁用 |
文本/小说 Provider
| Provider Code | 平台 |
|---|---|
google-gemini-text, google-gemini-novel |
Google Gemini |
anthropic-claude-text, anthropic-claude-novel |
Anthropic Claude |
deepseek-text, deepseek-novel |
DeepSeek |
qwen-text, qwen-novel |
Alibaba Qwen |
kimi-text, kimi-novel |
Moonshot Kimi |
zhipu-glm-text, zhipu-glm-novel |
智谱 GLM |
baidu-qianfan-text |
百度千帆 |
tencent-hunyuan-text |
腾讯混元 |
iflytek-spark-text |
讯飞星火 |
volcengine-doubao-text, volcengine-doubao-novel |
火山/豆包 |
minimax-text |
MiniMax |
baichuan-text |
百川 |
stepfun-text |
阶跃星辰 |
sensenova-text |
商汤日日新 |
ai360-text |
360 AI |
mistral-text |
Mistral |
cohere-command-text |
Cohere |
xai-grok-text |
xAI Grok |
openrouter-text |
OpenRouter |
together-llama-text |
Together |
fireworks-llama-text |
Fireworks |
perplexity-sonar-text |
Perplexity |
azure-openai-text |
Azure OpenAI |
aws-bedrock-openai-compatible-text |
AWS Bedrock OpenAI-compatible |
图片 Provider
| Provider Code | 平台 |
|---|---|
google-gemini-image |
Google Gemini Image |
stability-image |
Stability AI |
replicate-flux-image |
Replicate Flux |
fal-flux-image |
fal.ai Flux |
ideogram-image |
Ideogram |
leonardo-image |
Leonardo |
openai-image |
OpenAI Image |
mock-image |
Mock |
语音 Provider
| Provider Code | 平台 |
|---|---|
openai-tts |
OpenAI TTS |
elevenlabs-tts |
ElevenLabs |
minimax-tts |
MiniMax TTS |
volcengine-tts |
火山 TTS |
mock-voice |
Mock |
Lip Sync Provider
| Provider Code | 状态 |
|---|---|
mock-lipsync |
Mock,占位 |
minimax-lipsync |
占位,需确认公开 API |
alibaba-videoretalk-lipsync |
阿里 VideoRetalk,要求公网 video_url/audio_url |
heygen-lipsync |
默认禁用 |
sync-labs-lipsync |
默认禁用 |
fal-veed-lipsync |
默认禁用 |
volcengine-doubao-lipsync |
占位,需确认公开 API |
generic-lipsync |
通用适配器 |
5. Router 逻辑
实现文件:
backend/src/ai-router/ai-router.service.tsbackend/src/ai-router/ai-router.types.ts- 真人视频调用入口:
backend/src/live-action/live-action.service.ts
默认配置
system_configs.config_key = ai.router.v1
{
"version": 1,
"enabled": true,
"default_language": "zh-CN",
"daily_budget": 500,
"live_action_video": {
"zh-CN": {
"thresholds": {
"premium_importance_gt": 7,
"premium_action_gt": 5
},
"normal": {
"provider_code": "minimax_hailuo_23_fast",
"fallback_chain": ["minimax_hailuo_23_fast", "jimeng_seedance", "mock-video"]
},
"premium": {
"provider_code": "kling-image-to-video",
"fallback_chain": ["kling-image-to-video", "minimax_hailuo_23_fast", "jimeng_seedance", "mock-video"]
}
}
}
}
评分字段
StoryboardShot 上已落库:
scene_typeimportance_scoreemotion_scoreaction_scoreroute_tier
决策流程
StoryboardShot
-> scoreLiveActionShot()
scene_type / importance / emotion / action / route_tier
-> resolveLiveActionVideoRoute()
如果后台传 provider_code 且允许 override:走人工 Provider
否则读取 ai.router.v1
-> fallback_chain
normal: Hailuo -> Jimeng -> Mock
premium: Kling -> Hailuo -> Jimeng -> Mock
-> Provider 可用性检查
provider 存在
is_enabled=true
单片段成本不超过 max_cost_per_clip
当日预算不超过 daily_budget
-> 输出 AiRouteDecision
provider_code
fallback_chain
candidates
estimated_cost
decision_reason
scores
已实现能力
- 没传
provider_code时自动走 Router。 - 后台/管理员可人工 override。
- 任务
input_json记录router_decision。 - 支持 fallback 链、禁用 Provider 跳过、成本上限跳过、日预算跳过。
- Router 审计数据可从
RenderTask.input_json、ProviderLog、OperationLog读取。
待优化
- Router 当前重点服务真人视频片段,文本/图片/TTS 多 Provider Router 仍可继续统一。
- 日预算目前基于 ProviderLog 聚合,缺少更强的账户级预算锁。
- Premium 阈值配置存在,但
routeTierForScores的细节还可进一步后台可视化。 - Router 决策的人工可解释 UI 还可继续增强。
6. Prompt Builder 实现情况
实现文件:
backend/src/live-action/prompt-builder.service.ts- 调用点:
backend/src/live-action/live-action.service.ts
已实现
LiveActionPromptBuilderService 已实现真人视频 Prompt Engine V1:
- Provider profile:
generichailuoklingmock
- 结构化输入:
- 项目/集/镜头编号
- Provider Code
- scene type / route tier
- duration
- characters
- actor consistency rules
- location
- action
- visual description
- camera motion / camera instruction
- performance instruction
- dialogue / narration
- effect type
- scores
- lip-sync policy
- director plan
- 输出:
promptnegative_promptcomponentsprompt_versionprovider_profile
场景模板
Prompt Builder 内置 scene template,用于决定:
- camera shot
- camera move
- lighting
- performance
- vfx cue
- sound cue
- negative motion
Hailuo 专项
Hailuo profile 会输出中文短剧 Prompt,包含:
- 真人短剧竖屏 9:16
- 项目/集/镜头信息
- 场景、人物、演员一致性
- 主动作
- Motion Director
- Director Plan
- 镜头、表演、光线、特效、后期音效提示
- lip-sync fallback 约束
- “只完成一个主要动作,不要突然切场景”
- Hailuo 负面词中包含避免“一条 clip 塞长多动作”
Lip Sync 策略
当没有稳定 lip-sync Provider 或镜头不适合正脸说话时,策略会落为:
post_tts_subtitle_light_mouth
Prompt 会要求:
- 避免正脸嘴部特写
- 台词后期由 TTS 和字幕处理
- 演员只做轻微口型/反应/表情
Motion Director / Director Plan
Live Action Service 会补充:
director_plan- scene group
- shot role
- shot size
- continuity in/out
- edit intent
- sound bridge
motion_director- time beats
- camera rhythm
- vfx timing
- sound hits
- negative motion
待优化
- Prompt Library/题材套路库已经有数据表,但与 Prompt Builder 的深度联动还不完整。
- 爆款拉片沉淀的
creative_patterns还未全面驱动真人视频 Prompt。 - 专业音效/BGM 的剧情化选择已部分在 Live Action 后期里实现,但还缺可运营素材库。
- 多 Provider 差异化 Prompt 可继续细分,如 Kling/Runway/Veo 专用结构。
7. Character Library 实现情况
实现文件:
backend/src/characters/characters.service.tsbackend/src/live-action/live-action.service.ts- 数据表:
characters,global_characters,global_character_assets,character_images,actor_profiles
项目角色
已实现:
- 从故事圣经和章节抽取角色。
- 角色字段包含:
- name / aliases / role_type
- gender / age / identity
- appearance / face / hair / eye / body
- costume / props
- personality / speech / relationship / arc
- negative_rules
- anchor_asset_id
- voice provider/model/id/style
- performance_style
- 角色确认后锁定关键字段。
- 锁定后只允许有限字段变更,避免破坏一致性。
- 角色锚点图生成、重生成、切换锚点。
全局角色库
已实现数据结构:
global_charactersglobal_character_assets- 项目角色可通过
global_character_id关联全局角色。
当前定位:
- 已具备全局角色库基础表和后台入口。
- 更偏“生产系统预留 + 初步可用”,还不是完整运营级角色资产市场。
真人 Actor Profile
Live Action 已实现:
actor_profiles- 每个项目角色生成演员定妆。
- 字段包含:
- actor_desc
- appearance_rules
- wardrobe_rules
- performance_style
- voice_style
- reference_asset_ids
- anchor_asset_id
Actor Lock V1
已实现:
- 生成每个真人视频镜头时,只把该镜头出现的角色 ActorProfile 注入 Provider Prompt。
- 记录:
actor_lock.character_namesactor_lock.actor_hintsreference_asset_idsprovider_character_reference_enabledactor_lock.audit
- 防止“全项目角色混入一个镜头”。
- 任务
input_json.actor_lock可审计。
待优化
- 多角色同镜头的脸部一致性仍依赖 Provider 能力。
- 角色参考图/定妆图生成质量还需要更多真实 Provider 对比。
- 全局角色复用、授权、商用范围、声音样本绑定仍需完善运营闭环。
8. FFmpeg 流程
普通漫剧/图片视频流程
实现文件:
backend/src/media/media.service.ts
流程:
confirmed storyboard shots
-> shot_images
-> generateEpisodeAudio()
多角色 TTS
同文本 + 同 voice 缓存复用
segment files 落盘
timeline warnings
-> generateEpisodeSubtitle()
dialogue-level SRT
shot-level SRT 可选
-> renderEpisodeVideo()
prefer_ffmpeg=true 时走本地 FFmpeg
图片转视频
音频/字幕合成
输出 MP4 Asset
FFmpeg 能力:
- 检查 ffmpeg 是否存在。
- 分镜图写入临时目录。
- 音频/字幕素材写入临时目录。
- SRT 转 ASS 字幕。
- 图片生成视频轨。
- 音频混合。
- 输出
video/mp4。 - 失败时写
RenderTask.error_code/error_message。
真人短剧流程
实现文件:
backend/src/live-action/live-action.service.ts
片段生成:
StoryboardShot + keyframe
-> Router 选 Provider
-> Prompt Builder
-> Provider 生成 6s/10s clip
-> action_beat_mode 可拆成 2-3 段
-> 多段之间可提取上一段末帧作为下一段关键帧
-> concat + trim 到目标时长
-> VideoClip + Asset
整集合成:
VideoClip assets
-> normalizeLiveActionClipForRender()
ffprobe 探测源时长
超出目标时长则自动裁切
记录 clip_normalization
-> concatVideoClips()
-> prepareLiveActionPostProductionAssets()
TTS 对白
SRT/ASS 字幕
BGM
SFX
可选 lip-sync
-> finalizeLiveActionRenderWithPostProduction()
视频调色/暗角/字幕
dialogue + bgm + sfx 混音
loudnorm / limiter
输出 episode-final.mp4
真人后期 FFmpeg 参数特点:
libx264-preset veryfast-crf 20yuv420p+faststart- 音频
aac 160k 44100 stereo - BGM fade in/out
- SFX limiter
- dialogue loudnorm
- 混音
amix normalize=0 - 字幕走 ASS/FFmpeg subtitles filter
已记录审计
renderTask.input_json.clip_normalization- 是否裁切、源时长、目标时长、最终时长、裁切策略、trim start。
- 最终成片状态:
- 全 mock clip -> asset
mock - 任一真实 clip -> asset
active
- 全 mock clip -> asset
9. 当前已完成功能
系统 A 基础 MVP
- 用户注册登录。
- 项目创建。
- AI 原创小说 mock 流程。
- 上传小说、解析、章节拆分。
- 版权确认。
- 故事圣经生成/确认。
- 角色抽取/确认。
- 角色锚点图。
- 长篇记忆。
- 分集计划。
- 单集脚本。
- 分镜脚本。
- 图片生成 mock/Provider 抽象。
- 多角色 TTS。
- 字幕生成。
- FFmpeg 合成 MP4。
- 用户端查看进度、预览、下载。
- 后台项目管理、任务管理、Provider 管理。
- 内容审核。
- 公开案例授权。
- 额度账户和冻结额度。
AI Provider
- Provider 抽象层。
- Mock Provider。
- OpenAI Provider 模板。
- 国内外主流文本/图片/视频/TTS/lip-sync Provider 模板。
- Provider 日志。
- Provider 成本摘要。
- 后台统一保存同公司 Key 的体验优化。
- MiniMax TTS 实测修复:
- voice_id 映射
- 空音频错误识别
- Provider 拒绝错误透出。
真人短剧
live_action_ai输出模式。- 演员定妆 ActorProfile。
- 真人分镜改写。
- 关键帧生成/上传绑定。
- 视频片段生成:
- Hailuo / Kling / Jimeng / Mock 路由
- preflight
- 成本预估
- 单片段成本上限
- 真实费用确认
- action beat 拆段
- candidate_count 支持
- Router 质检闭环:
- 质检
- 低分自动重试
- fallback Provider
- manual_required
- 人工通过/驳回
- 片段重试。
- 小样测试台。
- 真人整集合成。
- TTS/BGM/SFX/字幕后期合成。
- clip normalization 自动裁切。
- actor lock 审计。
前端/后台体验
- 用户端制作页已改为单列纵向流程。
- 每步完成后自动滚动到下一步。
- 用户端真人视频面板已同步 action beat 控制。
- 后台深色运营台风格。
- 后台 AI 平台入口和配置。
- Router/质检审计视图和操作闭环已有实现。
10. 待优化功能
生产级队列化
- 当前 BullMQ/worker 框架已存在,但重型生成流程仍有大量 API 同步执行。
- 需要把:
- 重新质检
- 自动修复
- 指定 Provider 重试
- 真人视频生成
- FFmpeg 合成 全部任务化,形成可暂停、恢复、重跑、精确计费的队列闭环。
真人视频质量
- Hailuo 对复杂动作、翻滚、结印、法相天地等高复杂特效表现不稳定。
- 需要更多 Provider 准入测试:
- Kling
- Runway
- Vidu
- Veo
- 阿里 Wan
- 即梦/Seedance
- 都市短剧可继续用 Hailuo 主力;修仙/特效/复杂动作需要更强模型。
Lip Sync
- 已有 lip-sync 抽象和多个 Provider 占位。
- 稳定公开 API 仍需逐个平台实测。
- MiniMax/豆包 lip-sync 目前标为占位,不能假定已稳定可用。
- 阿里 VideoRetalk 需要公网
video_url/audio_url,素材公网桥接已设计但仍需生产验证。
Prompt Engine
- 真人 Prompt Builder V1 已落地。
- Prompt Library / CreativePattern 与实际脚本、分镜、真人 Prompt 的联动还需加强。
- 需要题材模板:
- 都市逆袭
- 霸总打脸
- 修仙法相
- 聊斋志异
- 次元壁
- 需要把拉片分析的镜头语言、音效、BGM、剪辑节奏转为可复用模板。
Character Library
- 全局角色表已存在。
- 还需要:
- 前台化角色资产库
- 商用授权状态
- 角色复用统计
- voice sample 管理
- 多项目角色一致性验证
成本/ROI
- Provider 成本估算和日志已有。
- 还需接真实账单回填、播放数据、完播率、收益,形成 ROI:
- 每题材 ROI
- 每 Provider 成本/成功率
- 每镜头类型失败率
- 每集成本和收益
数据清理/生产隔离
- 当前服务器数据库包含大量测试项目、任务、素材和 ProviderLog。
- Git 只提交源码,不提交数据库和 storage。
- 上线前建议:
- 分测试库/生产库
- 测试素材定期清理
- ProviderLog 按时间归档
- storage 生命周期策略
11. 关键文件路径
根目录
| 文件 | 作用 |
|---|---|
README.md |
项目说明 |
OPERATION_GUIDE.md |
操作说明 |
AGENTS.md |
Codex 开发约束 |
.env.example |
环境变量模板 |
.gitignore |
Git 忽略规则 |
CODEX_PROGRESS.md |
阶段进度记录 |
AI_VIDEO_TEST_LESSONS.md |
真人视频测试经验记录 |
CURRENT_ARCHITECTURE.md |
当前架构文档 |
后端
| 文件 | 作用 |
|---|---|
backend/src/app.module.ts |
Nest 模块总入口 |
backend/src/main.ts |
后端启动入口 |
backend/prisma/schema.prisma |
数据库 schema |
backend/prisma/migrations/*/migration.sql |
数据库迁移 |
backend/prisma/seed.ts |
初始 mock Provider、Router、管理员 |
backend/src/providers/provider.types.ts |
Provider 默认模板和成本摘要 |
backend/src/providers/providers.service.ts |
Provider bootstrap、执行、日志、配置 |
backend/src/ai-router/ai-router.service.ts |
Router 决策 |
backend/src/ai-router/ai-router.types.ts |
Router 默认配置和类型 |
backend/src/live-action/live-action.service.ts |
真人短剧核心流程 |
backend/src/live-action/prompt-builder.service.ts |
真人 Prompt Builder |
backend/src/media/media.service.ts |
TTS、字幕、普通 FFmpeg 合成 |
backend/src/assets/storage.service.ts |
存储抽象 |
backend/src/admin/admin.service.ts |
后台审计和管理 |
用户端
| 文件 | 作用 |
|---|---|
user-app/src/pages/index/index.vue |
用户端主制作台 |
user-app/src/api/client.ts |
用户端 API 封装 |
user-app/src/workflow.ts |
工作流标签和进度 |
user-app/src/styles.css |
用户端样式 |
后台端
| 文件 | 作用 |
|---|---|
admin/src/App.vue |
后台管理主界面 |
admin/src/api/client.ts |
后台 API 封装 |
admin/src/styles.css |
后台样式 |
Worker
| 文件 | 作用 |
|---|---|
workers/src/main.ts |
BullMQ worker 入口 |
运维
| 文件 | 作用 |
|---|---|
deploy/docker-compose.dev.yml |
开发依赖服务 |
deploy/nginx.https.example.conf |
Nginx HTTPS 示例 |
deploy/README.md |
部署说明 |
12. 当前架构判断
当前系统已经从“普通 AI 漫剧 MVP”扩展到“AI 真人短剧生产流水线雏形”:
- 基础项目/小说/故事/角色/分集/脚本/分镜/合成已跑通。
- Provider 抽象、Router、质检、成本、审计已经具备生产系统骨架。
- 真人短剧的关键难点已经开始落地:
- 角色定妆
- Actor Lock
- 专业 Prompt Builder
- 真实 Provider 小样
- 片段质检
- 后期音频/BGM/SFX/字幕
- FFmpeg 裁切/拼接/混音
下一阶段最重要的不是继续堆 Provider,而是把真人视频生产质量和任务稳定性打磨成可重复流水线:
- 真实 Provider 准入矩阵。
- 队列化/失败恢复。
- Prompt Library 与拉片模式库联动。
- 角色库运营化。
- 真实成本/ROI 回流。