Commit Graph

19 Commits

Author SHA1 Message Date
小鱼开发 8046e408d6 refactor(VideoGeneration): 拆分 1385 行单体组件
按审查后的方案拆分为 8 个文件,单文件最大行数从 1385 降至 483:

utils/(纯函数,无 React 依赖)
- videoTimeline.ts: computeAssignedIntervals(57 行)
- videoValidation.ts: validateLocalVideo(85 行)

hooks/(独立领域逻辑)
- useEmptyShotMaterials.ts: 空镜素材匹配/切换/上传(210 行)
- useVideoGeneration.ts: 视频生成 4-Step 核心流程(425 行)

_components/(展示组件,接收 props)
- AvatarMaterialSelector.tsx: 人物素材卡片(99 行)
- ShotTimeline.tsx: 分镜列表 + 素材操作(182 行)
- GenerationControls.tsx: 底部控制栏(112 行)

index.tsx: 容器组件,组合子组件 + 管理人物素材/预览/activeScene(483 行)

目录采用 _components/ 下划线前缀(页面私有组件惯例)。
TypeScript 编译和 Vite 生产构建均通过。

Refs: P1-6
2026-05-14 18:28:21 +08:00
小鱼开发 95e55293c6 security: 全面生产安全加固与部署修复
后端安全:
- DEBUG 默认 True → False
- 彻底移除 AUTH_BYPASS 认证绕过
- 验证码不再明文打印到日志
- 上传接口增加大小限制(500MB/20MB/100MB)与魔数校验
- python-jose → PyJWT, 更新 requirements.lock/uv.lock
- Bandit 恢复关键规则(B104/B301/B305/B314/B324/B603/B607)
- 修复 5 处 try_except_pass, 15 处加 nosec 注释
- 启用 Bandit pre-commit 钩子

前端安全:
- 配置完整 CSP 策略
- 收紧 Capabilities(fs:allow-read-file → $RESOURCE/**)
- 移除硬编码 devToken
- 清理前端 TODO(美家卡智影命名统一)

部署修复:
- docker-compose.prod 增加 alembic 迁移步骤
- api + scheduler 增加 Redis 心跳健康检查
- Nginx 添加安全响应头
- Nginx client_max_body_size 100M → 500M
- .env.example 补充 UPLOAD_MAX_* 配置与安全注释

其他:
- /voice/upload 合并到 /upload/audio
- Rust 上传增加文件大小检查
- 清理 Rust 19 处 println! + 前端 21 处 console.info
- 修复 VideoCompose.tsx toast 未导入(已有bug)
2026-05-10 23:31:34 +08:00
小鱼开发 5547844aa3 chore(docker): api/scheduler 容器增加 TZ=Asia/Shanghai 时区配置 2026-05-08 16:26:10 +08:00
小鱼开发 f1a4e34ac7 feat(docker): 测试环境 compose 添加自动迁移 + healthcheck
- api 服务启动时自动执行 alembic upgrade head,再启动 uvicorn
- api 添加 healthcheck(/health 端点检查)
- scheduler 添加 healthcheck(导入检查)
2026-05-08 13:43:15 +08:00
小鱼开发 755ecc9abe refactor(config): 统一配置体系,禁用热重载,清理兼容层
- 删除 .gitlab-ci.yml
- 删除 runtime_config.py 兼容层
- Pydantic Settings + YAML 三层配置分离
- 统一 PlatformConfigLoader 加载器
- docker-compose 移除重复 environment 覆盖
- volcengine base_url 从 YAML 读取
- 微信支付/SMS 空值启动时拦截
- 日志仅输出控制台,不写文件
- 更新 model_router 注释
2026-05-07 18:42:47 +08:00
小鱼开发 a58b2d1f49 chore: 测试环境 docker-compose 显式配置 CORS_ORIGINS 2026-05-04 18:47:05 +08:00
小鱼开发 e58159fc42 refactor: 第三方平台架构改造(Adapter Protocol + Gateway)
Phase 1: 异常体系统一
- 新增 PlatformError / PlatformErrorType 标准定义
- 改造所有 Provider 异常抛出为 PlatformError
- 注册全局 PlatformError exception handler

Phase 2: Adapter Protocol
- 新增 app/ai/adapters/base.py(PlatformAdapter + SyncCapable + TaskCapable + CallbackCapable)
- 新增 app/ai/adapters/constants.py(Method 常量)
- 新增 PlatformConfigLoader(config/platform-config.yaml)

Phase 3: HTTP Client 统一
- ViduProvider 从 aiohttp 迁移到 httpx(注入方式)
- VolcengineCaptionService 改为注入 http_client
- lifespan 统一管理所有 Client 创建和关闭

Phase 4: Gateway 骨架 + Adapter 实现
- 新增 ViduAdapter / VolcengineArkAdapter / VolcengineCaptionAdapter
- 新增 PlatformGateway(call_sync / submit_task / query_task / handle_webhook)
- 新增 LLMGateway(带 Fallback 降级链)
- lifespan 注册所有 Adapter 和 Gateway

Phase 6: 清理与验证
- 从 Settings 移除 VIDU_BASE_URL / VOLCENGINE_BASE_URL
- Provider 改为从 PlatformConfigLoader 读取 base_url
- 清理 volcengine_caption_service 全局单例
- config_loader 默认路径改为 platform-config.yaml
- Scheduler 注入共享 HTTP client
- vidu.py 回调路由使用 Adapter 验签和解析
- ruff 全量通过,应用启动测试通过
2026-05-04 16:07:16 +08:00
小鱼开发 e262134148 refactor: 移除 KlingAI 和 MiniMax 相关代码
删除内容:
- KlingAI Provider、MiniMax Provider
- Kling 视频/图片/TTS/语音克隆/形象克隆 Service 和 Scheduler Handler
- 已废弃的 TTSService、VoiceCloneService
- config 中 KLINGAI_*/MINIMAX_* 配置项
- ai_models.yaml 中 klingai 平台和模型配置
- docker-compose 中相关环境变量
- .env.example 中相关配置示例
- deploy-test.sh 中相关检查
- Makefile 中 klingai 语义检查排除规则
- KlingTaskStatus 枚举

修改内容:
- model_router.py 移除 KlingAI 平台分支
- voice.py 重写,修复批量合成/文件保存中 service 未定义的 Bug
- vidu_service.py 移除 MiniMax 相关注释
- script_handler.py 更新注释
2026-05-02 23:16:14 +08:00
小鱼开发 d0a64a9ca6 fix: 测试环境ENV改为staging,移除APP_BASE_URL和CORS_ORIGINS硬编码 2026-04-28 22:07:45 +08:00
小鱼开发 7715305a63 fix: docker-compose.test.yml 从environment中移除DEBUG,改由.env文件控制 2026-04-28 21:50:27 +08:00
小鱼开发 47ec047781 fix: docker-compose.test.yml DEBUG改为从.env读取,不再硬编码false 2026-04-28 21:41:14 +08:00
小鱼开发 d419d6732e feat: Vidu 对口型回调机制完整版(B方案)
后端:
- config.py: 新增 APP_BASE_URL 配置,支持 ENV 自动推断公网地址
- vidu.py: POST /lip-sync 自动拼接 callback_url 提交给 Vidu
- vidu.py: 新增 POST /callback 接收 Vidu 异步回调,写入 Redis
- vidu.py: GET /tasks/{id}/status 优先查 Redis,fallback 到 Vidu API

前端:
- types.ts / localStorage.ts: ScriptShot/ProjectSegment 新增 lipSyncVideoPath/VideoUrl/StartTime
- VideoGeneration.tsx: Step 1 提交对口型时保存 lipSyncStartTime(只算一次)
- VideoGeneration.tsx: 新增 Step 2 轮询后端状态(5s×120次),下载对口型视频
- VideoGeneration.tsx: Step 3 拼接时 segment 优先使用对口型视频,startTime=0

部署:
- docker-compose.test.yml / prod.yml: 添加 APP_BASE_URL 环境变量
- .env.example: 添加 APP_BASE_URL 说明

修复:
- 修复 React 闭包陷阱(updateSegment 后 shots 未同步)
- 修复 startTime 不一致(Step1/Step2 各自 random)
2026-04-28 15:23:46 +08:00
小鱼开发 1dcfdede4b fix: docker-compose.test.yml 加载 .env 文件,解决容器内环境变量缺失 2026-04-28 09:36:20 +08:00
小鱼开发 8f1939b1ab chore: 测试服 CORS 允许本地开发地址 localhost:1420 2026-04-27 16:05:35 +08:00
小鱼开发 1616a2d755 chore: 添加 Nginx + acme.sh HTTPS 配置,更新测试服 CORS
- 新增 nginx/meijiaka-zy.conf: 反向代理 + SSL 配置
- 新增 nginx/acme-setup.sh: acme.sh 一键证书申请脚本
- 新增 nginx/README.md: 部署和证书管理文档
- docker-compose.test.yml: 添加 CORS_ORIGINS=https://dev.tapi.meijiaka.cn
2026-04-27 14:40:48 +08:00
小鱼开发 5f3d414a48 chore: 对齐测试与生产 Docker 配置
- 新增 .dockerignore,减少构建上下文体积
- 修复 Dockerfile 缺失 config/ 目录复制
- docker-compose.test.yml: DEBUG=false, ENV=production, SECRET_KEY 强制传入
- 新增 docker-compose.dev.yml(开发专用)和 docker-compose.prod.yml(生产专用)
- deploy-test.sh: 加入 SECRET_KEY 强制检查,统一步骤编号
2026-04-27 12:33:06 +08:00
小鱼开发 773065536c refactor: 统一项目命名为 meijiaka-zy / 美家卡智影
- 中文产品名统一为 美家卡智影
- 代码目录/容器名/数据卷: meijiaka-zy
- 本地存储路径: Meijiaka-zy
- 数据库名: meijiaka_zy
- 七牛云资源前缀: meijiaka-zy
- 部署脚本指向新仓库 meijiaka-zy.git
2026-04-26 23:02:05 +08:00
小鱼开发 571324ef50 chore: 测试服数据卷改为指定目录挂载
- docker-compose.test.yml: 命名卷 → /opt/meijiaka-zj/data/{postgres,redis,logs} bind mount
- deploy-test.sh: 自动创建数据目录,步骤编号同步更新
- 便于备份: tar czvf backup.tar.gz /opt/meijiaka-zj/data
2026-04-26 22:22:42 +08:00
小鱼开发 5edabf5013 chore: 添加测试服部署配置和一键部署脚本
- docker-compose.test.yml: 独立 PostgreSQL + Redis + API + Scheduler
- deploy-test.sh: 检查环境、拉代码、建镜像、启动、验证的自动化脚本
- 测试服与开发环境隔离,不依赖外部网络和本地路径
2026-04-26 22:08:26 +08:00