# vstudio **Repository Path**: 741852963/vstudio ## Basic Information - **Project Name**: vstudio - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-29 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VStudio - AI 视频创作工作台 基于 Wails 的桌面应用,通过 AI 工作流编排实现从剧本到视频的全链路自动生成。 ## 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | Wails v2 (Go + WebView) | | 后端 | Go 1.23, SQLite (modernc.org/sqlite) | | 前端 | Vue 3, TypeScript, Tailwind CSS 4, Element Plus | | 状态管理 | Pinia | | 构建 | Vite, Wails CLI | ## 项目架构 ``` VStudio/ ├── app.go # API 层:参数校验 + 调用转发(禁止直接操作 repository) ├── main.go # Wails 入口 ├── build.bat # 一键编译脚本 ├── wails.json # Wails 配置 ├── internal/ │ ├── db/migrate.go # 数据库迁移 + Mock 数据 │ ├── logger/ # 日志 │ ├── model/ # 数据模型 │ │ ├── project.go # Project, Task, StudioRoleConfig │ │ ├── credential.go # ApiCredential │ │ ├── modelbinding.go # 复合模型绑定解析 │ │ └── setting.go # VoiceEntry │ ├── provider/ # AI 供应商适配 │ │ ├── mock_provider.go # 内置模拟供应商 (LLM/Image/Video) │ │ ├── real_provider.go # 真实 LLM 供应商 │ │ ├── qwen.go # 通义千问 │ │ └── provider.go # 统一接口 │ ├── repository/ # 数据访问层 │ │ ├── role_repo.go │ │ ├── studio_repo.go │ │ ├── project_repo.go │ │ ├── credential_repo.go │ │ └── setting_repo.go │ ├── service/ # 业务逻辑层 │ │ ├── role_service.go │ │ ├── studio_service.go │ │ ├── project_service.go # 项目/任务 CRUD + WAL checkpoint │ │ ├── credential_service.go │ │ ├── setting_service.go │ │ ├── role_executor.go # 任务分发调度器 (TaskRunner) │ │ └── scheduler.go # 并发任务调度 │ └── trace/ # 链路追踪 ├── frontend/ │ ├── src/ │ │ ├── pages/ # 页面组件 │ │ ├── components/ # 通用组件 │ │ ├── lib/ # 工具函数 │ │ └── composables/ # 组合式函数 │ └── wailsjs/ # Wails 绑定存根 └── docs/ ``` ## 分层架构 严格遵循单向访问流程:**API → Service → Repository** - **app.go (API 层)**:仅负责参数校验、日志记录、链路追踪、Wails 事件通知,所有业务逻辑委托 Service 层处理 - **Service 层**:承载全部业务逻辑,通过 Repository 层操作数据 - **Repository 层**:纯数据访问,不包含业务逻辑 ## 核心功能 ### 工作室管理 创建/编辑/删除工作室,配置角色流水线(编剧 → 角色设计 → 场景设计 → 道具设计 → 分镜师) ### 角色流水线 支持 5 种预设角色,每种角色可绑定不同的 AI 模型: 1. **编剧** (Screenwriter) - LLM 文本生成 2. **角色设计** (Character Designer) - LLM + 图片生成 3. **场景设计** (Scene Designer) - LLM + 图片生成 4. **道具设计** (Prop Designer) - LLM + 图片生成 5. **分镜师** (Storyboard Artist) - LLM + 视频生成 ### 任务编排 - 支持 text_gen / media_gen / review / custom / retry 五种任务类型 - Split 机制:media_gen 任务自动拆分为独立子任务 - 断点续跑:已完成任务自动跳过 - 级联完成:子任务全部完成后自动标记父任务完成 ### 凭证管理 支持多供应商 API 密钥管理,内置 Mock 供应商用于测试(无需消耗真实 Token) ### 模型绑定 复合模型绑定格式:`llm:Provider/Model|image:Provider/Model`,单类别角色使用纯字符串格式 ## 开发 ### 环境要求 - Go 1.23+ - Node.js 18+ - Wails CLI v2 ### 一键编译 ```bash # 双击运行或命令行执行 build.bat ``` ### 开发模式 ```bash wails dev ``` ### 运行测试 ```bash go test ./internal/... -v -count=1 ``` ### 测试覆盖率 ```bash go test ./internal/model/... ./internal/repository/... ./internal/service/... -coverprofile=coverage.out go tool cover -func=coverage.out ``` ## 内置 Mock 供应商 系统内置 3 个模拟供应商,用于无 Token 消耗的任务流测试: | 供应商 | 类别 | 延迟 | 输出 | |--------|------|------|------| | mock-llm | LLM | 200~800ms | 模拟剧本/提示词文本 | | mock-image | 图片 | 0.5~2s | mock:// 图片 URL | | mock-video | 视频 | 2~5s | mock:// 视频 URL | 单元测试使用 `NewMockProviderNoDelay()` 实现零延迟模式。 ## License Private