refactor: 统一项目命名为 meijiaka-zy / 美家卡智影
- 中文产品名统一为 美家卡智影 - 代码目录/容器名/数据卷: meijiaka-zy - 本地存储路径: Meijiaka-zy - 数据库名: meijiaka_zy - 七牛云资源前缀: meijiaka-zy - 部署脚本指向新仓库 meijiaka-zy.git
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# 美家卡智剪 (Meijiaka Smart Cut) - AI 视频剪辑桌面应用
|
||||
# 美家卡智影 (Meijiaka Smart Cut) - AI 视频剪辑桌面应用
|
||||
|
||||
## 项目概述
|
||||
|
||||
美家卡智剪是一个 AI 驱动的**短视频剪辑**桌面应用,采用 **Tauri + React + FastAPI** 混合架构。本项目由「美家卡智影」Fork 而来,从"数字人生成"转向"AI 辅助长视频剪辑"方向:用户导入长视频素材或提供口播文案,AI 自动分镜并生成配音,最终合成带字幕的成品短视频。
|
||||
美家卡智影是一个 AI 驱动的**短视频剪辑**桌面应用,采用 **Tauri + React + FastAPI** 混合架构。本项目由「美家卡智影」Fork 而来,从"数字人生成"转向"AI 辅助长视频剪辑"方向:用户导入长视频素材或提供口播文案,AI 自动分镜并生成配音,最终合成带字幕的成品短视频。
|
||||
|
||||
### 核心功能流程(6 步)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
meijiaka-zj/
|
||||
meijiaka-zy/
|
||||
├── python-api/ # FastAPI 后端服务(AI 代理 + 认证 + 任务调度)
|
||||
│ ├── app/
|
||||
│ │ ├── api/v1/ # API 路由: auth, system, tasks, script, caption, voice, upload, vidu, materials
|
||||
@@ -172,7 +172,7 @@ meijiaka-zj/
|
||||
| `avatar_cache.rs` | 头像视频缓存管理、海报生成 |
|
||||
| `utils.rs` | 项目目录辅助函数 |
|
||||
| `storage/engine.rs` | 本地存储引擎(原子写入、文件锁、路径净化) |
|
||||
| `storage/paths.rs` | 集中化路径计算(`~/Documents/Meijiaka-zj/` 为根目录) |
|
||||
| `storage/paths.rs` | 集中化路径计算(`~/Documents/Meijiaka-zy/` 为根目录) |
|
||||
| `commands/project.rs` | 项目本地存储 IPC 命令 |
|
||||
| `commands/asset.rs` | 资源文件保存 IPC 命令 |
|
||||
| `commands/auth_state.rs` | 认证状态文件持久化 |
|
||||
@@ -198,26 +198,26 @@ docker-compose up -d
|
||||
- `meijiaka-db`(PostgreSQL 15,端口 5432)
|
||||
- `meijiaka-redis`(Redis 7,端口 6379)
|
||||
- 共享 Docker 网络 `meijiaka-network`
|
||||
- 自动初始化数据库 `meijiaka_zj`
|
||||
- 自动初始化数据库 `meijiaka_zy`
|
||||
|
||||
#### 第 2 步:启动智剪后端(API + Scheduler)
|
||||
|
||||
```bash
|
||||
cd /Users/0fun/work/meijiaka-zj/python-api
|
||||
cd /Users/0fun/work/meijiaka-zy/python-api
|
||||
|
||||
# 首次需准备环境变量
|
||||
cp .env.example .env
|
||||
# 编辑 .env 填入实际的 AI API Keys
|
||||
|
||||
# 启动 API + Scheduler(必须加 -p 参数,避免与其他项目冲突)
|
||||
docker-compose -p meijiaka-zj up -d
|
||||
docker-compose -p meijiaka-zy up -d
|
||||
```
|
||||
|
||||
> ⚠️ **必须加 `-p meijiaka-zj`**,否则容器名会和「智影」项目冲突。
|
||||
> ⚠️ **必须加 `-p meijiaka-zy`**,否则容器名会和「智影」项目冲突。
|
||||
|
||||
启动后会得到 2 个容器:
|
||||
- `meijiaka-zj-api` → API 服务,端口 **8081**→8000
|
||||
- `meijiaka-zj-scheduler` → Async Engine 调度器
|
||||
- `meijiaka-zy-api` → API 服务,端口 **8081**→8000
|
||||
- `meijiaka-zy-scheduler` → Async Engine 调度器
|
||||
|
||||
后端服务地址:
|
||||
- API: http://localhost:8081/api/v1
|
||||
@@ -227,11 +227,11 @@ docker-compose -p meijiaka-zj up -d
|
||||
**Docker Compose 服务组成**:
|
||||
| 容器 | 用途 | 映射端口 |
|
||||
|------|------|----------|
|
||||
| `meijiaka-zj-api` | FastAPI 开发服务器 | **8081**→8000 |
|
||||
| `meijiaka-zj-scheduler` | Async Engine 统一调度器 | 无 |
|
||||
| `meijiaka-zy-api` | FastAPI 开发服务器 | **8081**→8000 |
|
||||
| `meijiaka-zy-scheduler` | Async Engine 统一调度器 | 无 |
|
||||
|
||||
**关键配置(以 `docker-compose.yml` 为准)**:
|
||||
- 数据库:`meijiaka_zj`(通过 `meijiaka-db` 连接)
|
||||
- 数据库:`meijiaka_zy`(通过 `meijiaka-db` 连接)
|
||||
- Redis DB:`1`
|
||||
- 依赖外部网络 `meijiaka-network`
|
||||
|
||||
@@ -239,13 +239,13 @@ docker-compose -p meijiaka-zj up -d
|
||||
```bash
|
||||
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
```
|
||||
预期看到 4 个容器:`meijiaka-db`、`meijiaka-redis`、`meijiaka-zj-api`、`meijiaka-zj-scheduler`。
|
||||
预期看到 4 个容器:`meijiaka-db`、`meijiaka-redis`、`meijiaka-zy-api`、`meijiaka-zy-scheduler`。
|
||||
|
||||
**停止服务**:
|
||||
```bash
|
||||
# 停止智剪(保留基础设施)
|
||||
cd /Users/0fun/work/meijiaka-zj/python-api
|
||||
docker-compose -p meijiaka-zj down
|
||||
cd /Users/0fun/work/meijiaka-zy/python-api
|
||||
docker-compose -p meijiaka-zy down
|
||||
|
||||
# 停止基础设施(通常保持运行)
|
||||
cd /Users/0fun/work/docker-infra
|
||||
@@ -472,10 +472,10 @@ Rust 层实现了 defense-in-depth 的本地存储系统:`src-tauri/src/storag
|
||||
- `with_file_lock()` — 通过 `fs2` 实现独占文件锁
|
||||
- `read_json<T>()` — 安全读取,文件不存在返回 `None`
|
||||
- **`paths.rs`**: 集中路径计算
|
||||
- `~/Documents/Meijiaka-zj/projects/{id}/` (meta.json, segments.json, assets/, videos/, images/)
|
||||
- `~/Documents/Meijiaka-zj/products/`
|
||||
- `~/Documents/Meijiaka-zj/avatars.json`
|
||||
- `~/Documents/Meijiaka-zj/voices.json`
|
||||
- `~/Documents/Meijiaka-zy/projects/{id}/` (meta.json, segments.json, assets/, videos/, images/)
|
||||
- `~/Documents/Meijiaka-zy/products/`
|
||||
- `~/Documents/Meijiaka-zy/avatars.json`
|
||||
- `~/Documents/Meijiaka-zy/voices.json`
|
||||
- `{app_config_dir}/auth.json`
|
||||
- `{app_data_dir}/avatars/` (缓存)
|
||||
|
||||
@@ -497,9 +497,9 @@ users -- 用户账户信息(mobile, nickname, avatar_url)
|
||||
注意:当前 BaseModel **不包含软删除字段** (`deleted_at`)。
|
||||
|
||||
**业务数据本地存储**:
|
||||
- 项目/脚本/分镜 → 前端本地 JSON 文件(`~/Documents/Meijiaka-zj/projects/`)
|
||||
- 项目/脚本/分镜 → 前端本地 JSON 文件(`~/Documents/Meijiaka-zy/projects/`)
|
||||
- 音频/视频/图片文件 → 本地磁盘
|
||||
- 成品视频 → `~/Documents/Meijiaka-zj/products/`
|
||||
- 成品视频 → `~/Documents/Meijiaka-zy/products/`
|
||||
- 用户配置 → localStorage(少量 UI 状态)
|
||||
|
||||
### 数据流规范
|
||||
@@ -515,7 +515,7 @@ users -- 用户账户信息(mobile, nickname, avatar_url)
|
||||
### 本地存储结构
|
||||
|
||||
```
|
||||
~/Documents/Meijiaka-zj/ # 用户文档目录
|
||||
~/Documents/Meijiaka-zy/ # 用户文档目录
|
||||
├── config.json # 全局配置
|
||||
├── projects/ # 项目数据
|
||||
│ └── {project_id}/
|
||||
@@ -574,7 +574,7 @@ users -- 用户账户信息(mobile, nickname, avatar_url)
|
||||
|
||||
### 核心原则
|
||||
|
||||
1. **后端环境优先使用 Docker Compose**: 先启动共享基础设施 `docker-infra`,再启动本项目 `docker-compose -p meijiaka-zj up -d`。前端默认连接 `http://127.0.0.1:8081/api/v1`。
|
||||
1. **后端环境优先使用 Docker Compose**: 先启动共享基础设施 `docker-infra`,再启动本项目 `docker-compose -p meijiaka-zy up -d`。前端默认连接 `http://127.0.0.1:8081/api/v1`。
|
||||
2. **接口契约优先**: 后端承诺无论使用什么 AI 模型,输出永远符合同一个 Schema
|
||||
3. **类型单一来源**: 后端 Schema 是权威,前端通过 OpenAPI 生成类型
|
||||
4. **Adapter 层隔离**: 前后端字段差异只允许在 Adapter 层处理
|
||||
@@ -776,7 +776,7 @@ npm run test:coverage
|
||||
6. **路径遍历**: Rust StorageEngine 的 `sanitize_id()` 和 `sanitize_filename()` 防御路径遍历攻击
|
||||
7. **原子写入**: 所有本地 JSON 使用 `atomic_write_json`(先写 `.tmp` 再 `rename`)
|
||||
8. **文件锁**: 并发 RMW 操作使用 `with_file_lock` 防止竞态
|
||||
9. **日志**: 后端日志写入 `~/Documents/Meijiaka-zj/logs/api_YYYYMMDD.log`
|
||||
9. **日志**: 后端日志写入 `~/Documents/Meijiaka-zy/logs/api_YYYYMMDD.log`
|
||||
|
||||
## 配置说明
|
||||
|
||||
@@ -786,7 +786,7 @@ npm run test:coverage
|
||||
|
||||
```bash
|
||||
# 数据库 (PostgreSQL)
|
||||
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/meijiaka_zj
|
||||
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/meijiaka_zy
|
||||
|
||||
# Redis
|
||||
REDIS_HOST=localhost
|
||||
|
||||
Reference in New Issue
Block a user