How aetherno2332/open-ai-canvas4ai works
影策是面向影视与短剧创作的 AI 工作台。创作者在浏览器中组织自由画布与结构化项目,再提交文本、图片、视频或音频生成任务;后端统一处理任务并通过模型渠道提供结果,资源与时间线支持后续管理和剪辑。主要实现分布在前端工作区、后端 handler/service/repository 与 provider 层。README 描述了总体调用链和能力;未抽样的子系统仅按文档保留,不推断其内部调用。
Main entry points: application.tsx React 工作区 · task_execution.go 任务执行 · creation.go 生成任务 API · resource.go 资源服务
Components 23
创作工作区
- React 工作区
web/src/application.tsx - 自由画布
web/src/components/canvas - 项目工作流
backend/internal/app/project_workflow.go
生成与 Agent
- 云端 Agent
backend/internal/app/cloud_agent.go - 生成任务 API
backend/internal/handler/creation.go - 任务执行
backend/internal/app/task_execution.go - 生成引擎
backend/internal/generation/engine.go - 模型渠道
backend/internal/app/provider.go
素材与剪辑
- 素材管理界面
web/src/components/asset-media-preview.tsx - 图片资源客户端
web/src/services/image-storage.ts - 资源接口
backend/internal/handler/resource_delivery.go - 资源服务
backend/internal/app/resource.go - 对象存储
backend/internal/storage/objects.go - 时间线剪辑
backend/internal/app/timeline_render_plan.go
后端服务
- HTTP 路由处理
backend/internal/handler/routes.go - 应用服务
backend/internal/app/service.go - 数据仓库
backend/internal/repository/repository.go - 业务数据库
backend/internal/database/database.go
平台管理
- 管理后台
web/src/pages/admin/settings/storage-settings-page.tsx - 管理接口
backend/internal/handler/admin_storage.go - 存储配置服务
backend/internal/app/storage_location.go
Connections 24
- 创作者 → React 工作区: 使用
- React 工作区 → 自由画布: 组织创作
- React 工作区 → 项目工作流: 管理项目
- 自由画布 → 生成任务 API: 提交生成
- 项目工作流 → 生成任务 API: 提交任务
- React 工作区 → 云端 Agent: 发起对话
- 生成任务 API → 任务执行: 委派执行
- 任务执行 → 生成引擎: 请求生成
- 生成引擎 → 模型渠道: 选择渠道
- 模型渠道 → 外部模型服务: 调用模型
- 任务执行 → 资源服务: 保存产物
- 素材管理界面 → 图片资源客户端: 上传与读取
- 图片资源客户端 → 资源接口: 传输资源
- 资源接口 → 资源服务: 处理请求
- 资源服务 → 对象存储: 读写对象
- React 工作区 → 时间线剪辑: 剪辑素材
- React 工作区 → HTTP 路由处理: 请求 API
- HTTP 路由处理 → 应用服务: 调用服务
- 应用服务 → 数据仓库: 读写数据
- 数据仓库 → 业务数据库: 查询持久化
- 管理后台 → 管理接口: 管理请求
- 管理接口 → 应用服务: 调用服务
- 管理后台 → 存储配置服务: 配置存储
- 存储配置服务 → 数据仓库: 保存配置
More TypeScript diagrams: ethers-io/ethers.js · blacksmithgu/obsidian-dataview · taskforcesh/bullmq · hopding/pdf-lib · open-pencil/open-pencil
Drawn by GitDiagram on from the repository's file tree, README and source files. Read as Markdown ·