辰入梦短剧生成系统技术架构解析:Electron+Vue3+SQLite实战
技术选型:Electron 40.x + Vue 3 + Vite + Node.js 18 + Express + SQLite(better-sqlite3)
什么是辰入梦短剧生成系统?
辰入梦短剧生成系统是一款AI驱动的短剧创作桌面工具,帮助用户完成从剧本到视频的完整流程。
本文分享其技术架构设计和实现细节。
系统架构总览
客户端:Electron桌面 / Web浏览器(localhost:3000)
↓ HTTP REST API
本地后端:Node.js Express(localhost:3001)
↓ SQLite数据库(better-sqlite3)
↓ HTTPS
云端:chenrumeng.cn/api(账号认证/订阅管理)
↓
AI服务商:豆包/通义/Grsai/Gemini
前端技术选型分析
为什么选Vue 3?
| 特性 | Vue 3优势 | 短剧创作场景应用 |
|---|---|---|
| 组合式API | 逻辑复用性强 | 封装AI生成、进度管理等复杂逻辑 |
| 响应式系统 | Proxy-based,性能更好 | 实时显示生成进度、状态更新 |
| TypeScript支持 | 类型安全 | 大型项目维护 |
| tree-shaking | 打包体积小 | Electron应用启动速度 |
核心组件设计
Seedance 2.0宫格创作面板使用组合式API封装复杂状态管理。
后端技术选型分析
为什么选SQLite+better-sqlite3?
| 方案 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| sqlite3(异步) | 社区大 | 回调地狱 | Web应用 |
| better-sqlite3 | 同步API,性能好 | 社区稍小 | 桌面应用 |
| Prisma | 类型安全 | 太重 | 复杂Web应用 |
选择better-sqlite3的原因:
- 同步API:桌面应用单用户场景更简单
- 性能更好:避免异步事件循环开销
- Electron兼容性好
- 数据安全:本地存储不上云
数据库设计
核心表:projects(项目)、episodes(剧集)、characters(角色)、scenes(场景)、shots(分镜)、character_library(角色资产库)、scene_library(场景资产库)
AI服务商集成方案
统一接口设计
采用抽象基类+各服务商实现的架构,支持豆包Seedream、通义万象、Grsai、Gemini等多种模型。
踩坑记录
Seedream 5.0尺寸参数变更:旧版用2k关键字,新版改成像素尺寸2848x1600。
Grsai API响应结构:taskId路径是data.data.id,不是data.id。
数据安全设计
| 数据类型 | 存储位置 | 说明 |
|---|---|---|
| 项目数据 | 本地SQLite | %APPDATA%\drama.db |
| 图片素材 | 本地文件系统 | 我的文档\辰入梦素材\ |
| API Key | 本地加密存储 | 不上传云端 |
| 账号信息 | 云端验证 | 仅认证和订阅 |
总结
辰入梦的技术选型核心思路:
- 本地优先:数据安全,隐私保护
- 多服务商:AI配置灵活,不绑定单一厂商
- 桌面应用:开箱即用,无需服务器搭建