feat: 统一预览与确认生成渲染路径 — 预览=正式品质+确认复用 #1339

Merged
xiaoxia merged 7 commits from feature/unify-preview-confirm-render-path into develop 2026-08-11 06:55:02 +08:00
Owner

渲染管线统一

  • UnifiedRenderService: 移除 is_preview,统一 CRF 23 + medium preset
  • RenderAdapter: 移除 is_preview,统一执行校验和缩略图生成
  • Worker generation.py: 移除 480p+1M 码率覆盖逻辑
  • generation_preview.py: 删除 PREVIEW_RESOLUTION 常量

确认生成复用预览产物

  • Domain: 新增 mark_confirmed() 方法
  • confirm_generation: 预览已完成时直接复用(秒出)
  • Editor generate: plan未修改时复用预览产物

测试

  • 重写 test_1280_preview_speedup(验证统一品质)
  • 重写 test_confirm_generation(验证复用逻辑)
## 渲染管线统一 - UnifiedRenderService: 移除 is_preview,统一 CRF 23 + medium preset - RenderAdapter: 移除 is_preview,统一执行校验和缩略图生成 - Worker generation.py: 移除 480p+1M 码率覆盖逻辑 - generation_preview.py: 删除 PREVIEW_RESOLUTION 常量 ## 确认生成复用预览产物 - Domain: 新增 mark_confirmed() 方法 - confirm_generation: 预览已完成时直接复用(秒出) - Editor generate: plan未修改时复用预览产物 ## 测试 - 重写 test_1280_preview_speedup(验证统一品质) - 重写 test_confirm_generation(验证复用逻辑)
xiaoxia added 1 commit 2026-08-10 22:32:50 +08:00
feat: 统一预览与确认生成渲染路径 — 预览=正式品质+确认复用
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 30s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m30s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m23s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m22s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m36s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 4m36s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 5m29s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
AI Code Review / AI Code Review (pull_request) Successful in 6m45s
29994ffcbc
## 渲染管线统一
- UnifiedRenderService: 移除 is_preview 参数,统一 CRF 23 + medium preset
- RenderAdapter: 移除 is_preview 参数,统一执行校验和缩略图生成
- Worker generation.py: 移除 480p+1M 码率覆盖逻辑
- generation_preview.py: 删除 PREVIEW_RESOLUTION 常量和 _calc_preview_resolution()

## 确认生成复用预览产物
- Domain: 新增 GenerationTask.mark_confirmed() 方法
- confirm_generation: 预览已完成时直接复用产物(秒出),无需重新渲染
- Editor generate: 检查 plan 关联的预览任务,plan未修改时复用产物
- Schema: CreatePreviewGenerationTaskRequest 新增 source_edit_plan_id 字段

## 测试更新
- test_1280_preview_speedup: 重写为验证统一品质参数
- test_confirm_generation: 重写为验证复用逻辑

## 交付标准
- 预览渲染质量与确认生成一致(1080p, CRF 23, medium)
- 预览后确认生成直接复用产物(秒出)
- Worker 端无任何 is_preview 低质量渲染代码残留

🚀 预览环境已部署

项目 详情
PR号 #1339
预览链接 https://pr-1339.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1339 | | 预览链接 | [https://pr-1339.preview.xiaoxiajianji.com](https://pr-1339.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-08-10 22:41:32 +08:00
fix: 移除已删除的 PREVIEW_RESOLUTION 引用及未使用变量
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 42s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m7s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m23s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
AI Code Review / AI Code Review (pull_request) Failing after 2m3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m35s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m36s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m25s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m30s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m24s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 5s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
5924751bff
- test_generation_preview.py: 移除 PREVIEW_RESOLUTION 导入和 TestCalcPreviewResolution 测试类
- render_adapter.py: 移除未使用的 has_voice_id 变量
auto-approve-bot approved these changes 2026-08-10 22:50:30 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-08-10 22:50:30 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia added 1 commit 2026-08-10 22:51:45 +08:00
ci: retrigger CI
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 36s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m3s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m18s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m18s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m36s
AI Code Review / AI Code Review (pull_request) Failing after 1m55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m31s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m11s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m31s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m33s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m43s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
0be5bc1837
xiaoxia added 1 commit 2026-08-10 23:24:17 +08:00
fix: 修复统一渲染后遗留的测试引用
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m3s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m28s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m45s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m44s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m44s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m27s
AI Code Review / AI Code Review (pull_request) Failing after 3m54s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m55s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m58s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m54s
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
0213be0428
- test_1294_preview_voice_injection: 移除 _render_video() 调用中的 is_preview 参数
- test_generation_preview: 更新分辨率断言(预览不再设置自定义分辨率)
xiaoxia added 1 commit 2026-08-10 23:36:46 +08:00
test: 补充编辑器预览产物复用逻辑单测
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 27s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m27s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m28s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m40s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m40s
AI Code Review / AI Code Review (pull_request) Failing after 2m26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m21s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m54s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m54s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m14s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m56s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 7m13s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 5s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 13m39s
1156061ba3
- _find_reusable_preview_task: 6 个用例(正常复用/无任务/未完成/plan已修改/非预览/异常)
- _get_task_output_url: 3 个用例(正常/空视频/异常)
- mark_confirmed: 5 个用例(is_preview/cover/title/dimensions)
xiaoxia added 1 commit 2026-08-10 23:54:48 +08:00
fix: 修复 _get_task_output_url 导入路径并更新测试
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m5s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m34s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m54s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m12s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m32s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m23s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m58s
AI Code Review / AI Code Review (pull_request) Failing after 6m22s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m26s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
ed80fd7205
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:是
  • 阻塞级问题数量:2 个

📊 审查概览

  • 整体评价:需修改
  • 建议级问题数量:2 个

🔴 阻塞级问题(必须修复)

  1. [apps/api/app/api/routes/generation_tasks.py: 372] 确认生成时未校验分辨率一致性

    • 问题类型:逻辑bug
    • 问题描述:在 confirm_generation 函数的复用逻辑中,当预览任务已完成时,代码直接调用 mark_confirmed 并复用产物,但未校验用户在确认时请求的 output_width / output_height 是否与预览任务实际渲染的分辨率一致。
    • 后果:如果用户在预览后修改了分辨率设置(例如从默认的 1080p 改为 720p)再点击确认,系统会忽略新的分辨率设置,直接返回 1080p 的预览视频,但将数据库中的 output_width 更新为 720p,导致数据不一致(视频文件实际是 1080p,元数据却是 720p),造成用户获取到错误的视频文件。
    • 修改建议:在复用预览产物前,增加分辨率校验逻辑。如果 request.output_widthrequest.output_heightsource_task 中的实际值不符,应跳过复用逻辑,走新建任务流程以重新渲染。
  2. [apps/api/app/api/routes/templates_editor/generation.py: 196] 时间比较可能引发空指针异常

    • 问题类型:逻辑bug
    • 问题描述:在 _find_reusable_preview_task 函数中,直接比较 plan_updated > completed_at。虽然 SQLAlchemy 通常会自动处理 updated_at,但如果 plan.updated_atNone(例如 Plan 模型配置允许为空或刚创建未刷新),此比较会抛出 TypeError
    • 后果:导致模板编辑器生成逻辑在特定状态下崩溃,无法复用预览产物。
    • 修改建议:增加非空判断,修改为 if plan_updated and completed_at and plan_updated > completed_at:

💡 改进建议(不阻塞合并)

  1. [apps/worker/video_processing/render_adapter.py: 508] ASR 服务初始化策略调整

    • 具体内容:代码移除了 is_preview 判断,现在无论是否有配音需求都会初始化 ASR 服务 (asr_service = self._get_asr_service())。如果 ASR 初始化涉及加载重型模型,这会导致所有渲染任务(包括无配音的纯视频任务)性能下降。建议保留原有的按需初始化逻辑,仅在检测到 voice_idvoiceover_audio_path 时才初始化 ASR。
  2. [apps/api/app/api/routes/generation_tasks.py: 372] 复用产物前应校验视频文件存在性

    • 具体内容:在复用预览任务时,仅检查了 is_completed 状态。建议增加对 generated_videos 表的查询,确保任务确实有对应的视频输出文件 URL,避免因任务状态标记为“完成”但文件丢失(如存储故障)导致返回空链接给用户。

良好实践

  • PR 的核心目标(预览与正式同质,实现秒出)逻辑清晰,通过移除 is_preview 分支统一了渲染路径,减少了维护成本。
  • mark_confirmed 方法的设计合理,通过更新 is_preview 标志位有效防止了重复确认。
  • generation_preview.py 中移除了硬编码的分辨率计算逻辑,改由 Worker 端根据模板配置决定,提高了灵活性。

🤖 由 AI 代码审查机器人自动生成 | 2026-08-10 16:01:11 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:是 - 阻塞级问题数量:2 个 ### 📊 审查概览 - 整体评价:需修改 - 建议级问题数量:2 个 ### 🔴 阻塞级问题(必须修复) 1. **[apps/api/app/api/routes/generation_tasks.py: 372] 确认生成时未校验分辨率一致性** - 问题类型:逻辑bug - 问题描述:在 `confirm_generation` 函数的复用逻辑中,当预览任务已完成时,代码直接调用 `mark_confirmed` 并复用产物,但未校验用户在确认时请求的 `output_width` / `output_height` 是否与预览任务实际渲染的分辨率一致。 - 后果:如果用户在预览后修改了分辨率设置(例如从默认的 1080p 改为 720p)再点击确认,系统会忽略新的分辨率设置,直接返回 1080p 的预览视频,但将数据库中的 `output_width` 更新为 720p,导致数据不一致(视频文件实际是 1080p,元数据却是 720p),造成用户获取到错误的视频文件。 - 修改建议:在复用预览产物前,增加分辨率校验逻辑。如果 `request.output_width` 或 `request.output_height` 与 `source_task` 中的实际值不符,应跳过复用逻辑,走新建任务流程以重新渲染。 2. **[apps/api/app/api/routes/templates_editor/generation.py: 196] 时间比较可能引发空指针异常** - 问题类型:逻辑bug - 问题描述:在 `_find_reusable_preview_task` 函数中,直接比较 `plan_updated > completed_at`。虽然 SQLAlchemy 通常会自动处理 `updated_at`,但如果 `plan.updated_at` 为 `None`(例如 Plan 模型配置允许为空或刚创建未刷新),此比较会抛出 `TypeError`。 - 后果:导致模板编辑器生成逻辑在特定状态下崩溃,无法复用预览产物。 - 修改建议:增加非空判断,修改为 `if plan_updated and completed_at and plan_updated > completed_at:`。 ### 💡 改进建议(不阻塞合并) 1. **[apps/worker/video_processing/render_adapter.py: 508] ASR 服务初始化策略调整** - 具体内容:代码移除了 `is_preview` 判断,现在无论是否有配音需求都会初始化 ASR 服务 (`asr_service = self._get_asr_service()`)。如果 ASR 初始化涉及加载重型模型,这会导致所有渲染任务(包括无配音的纯视频任务)性能下降。建议保留原有的按需初始化逻辑,仅在检测到 `voice_id` 或 `voiceover_audio_path` 时才初始化 ASR。 2. **[apps/api/app/api/routes/generation_tasks.py: 372] 复用产物前应校验视频文件存在性** - 具体内容:在复用预览任务时,仅检查了 `is_completed` 状态。建议增加对 `generated_videos` 表的查询,确保任务确实有对应的视频输出文件 URL,避免因任务状态标记为“完成”但文件丢失(如存储故障)导致返回空链接给用户。 ### ✅ 良好实践 - PR 的核心目标(预览与正式同质,实现秒出)逻辑清晰,通过移除 `is_preview` 分支统一了渲染路径,减少了维护成本。 - `mark_confirmed` 方法的设计合理,通过更新 `is_preview` 标志位有效防止了重复确认。 - `generation_preview.py` 中移除了硬编码的分辨率计算逻辑,改由 Worker 端根据模板配置决定,提高了灵活性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-10 16:01:11 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia added 1 commit 2026-08-11 06:44:35 +08:00
fix: AI Code Review 阻塞级问题修复 — 分辨率一致性校验+空指针防护
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 34s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m42s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m56s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m58s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m30s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 4m35s
AI Code Review / AI Code Review (pull_request) Successful in 6m58s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m8s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 8m13s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 12s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 51s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 1m4s
142d4331cc
xiaoxia merged commit 1096a6a489 into develop 2026-08-11 06:55:02 +08:00

🗑️ 预览环境已清理

PR #1339 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1339 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.