graph TB
%% 样式定义
classDef core fill:#f9f,stroke:#333,stroke-width:2px;
classDef service fill:#e1f5fe,stroke:#0277bd,stroke-width:2px;
classDef model fill:#fff9c4,stroke:#fbc02d,stroke-width:2px;
classDef external fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
subgraph Application ["应用程序入口"]
Program[Program.cs]:::core
Config[appsettings.json]:::core
end
subgraph Pipeline ["核心流水线"]
VideoPipeline[VideoProductionPipeline]:::core
end
subgraph DirectorLayer ["导演层 (Director)"]
StoryboardService[StoryboardService]:::service
VolcengineLlm[VolcengineLlmService]:::external
end
subgraph ActorLayer ["演员层 (Actor)"]
ImageService[VolcengineImageService]:::service
SpeechService[MiniMaxSpeechService]:::service
VolcengineAPI["火山引擎 API"]:::external
MiniMaxAPI["MiniMax API"]:::external
end
subgraph EditorLayer ["剪辑层 (Editor)"]
SubtitleService[SrtSubtitleService]:::service
VideoService[FFMpegVideoService]:::service
AudioAnalysis[NAudioAnalysisService]:::service
FFmpeg["FFmpeg Binaries"]:::external
end
subgraph Models [数据模型]
VideoProject[VideoProject]:::model
Storyboard[Storyboard]:::model
Scene[Scene]:::model
GeneratedAsset[GeneratedAsset]:::model
end
%% 依赖关系
Program --> Config
Program --> VideoPipeline
VideoPipeline --> StoryboardService
VideoPipeline --> ImageService
VideoPipeline --> SpeechService
VideoPipeline --> SubtitleService
VideoPipeline --> VideoService
VideoPipeline --> AudioAnalysis
%% 导演层逻辑
StoryboardService --> VolcengineLlm
VolcengineLlm --> VolcengineAPI
StoryboardService -.-> Storyboard
Storyboard --> Scene
%% 演员层逻辑
ImageService --> VolcengineAPI
SpeechService --> MiniMaxAPI
ImageService -.-> GeneratedAsset
SpeechService -.-> GeneratedAsset
%% 剪辑层逻辑
VideoService --> FFmpeg
SubtitleService --> GeneratedAsset
AudioAnalysis --> GeneratedAsset
%% 数据流
VideoProject --> VideoPipeline
Scene --> ImageService
Scene --> SpeechService
GeneratedAsset --> VideoService