fix(viral-video): #2134 generate-copy 提速到 30-40s + 细粒度 phase/phase_message #2136

Merged
xiaoxia merged 2 commits from fix/2134-generate-copy-speed-phase into develop 2026-10-02 11:41:46 +08:00
Owner

问题7:generate-copy 端到端提速(目标 30-40s)

  • 新增 doubao_fast_model(默认 doubao-1-5-pro-32k-250115),结构化输出任务(意图解析/编导脚本/合规审核)改用快模型,不再用慢推理模型 doubao-seed-1-6
  • call_llm 扩展支持 model/max_tokens/system_prompt 参数;chat_completion 同步支持 model 覆盖
  • 编导脚本 temperature=0.8, max_tokens=2500(原 4096 收紧);意图解析 max_tokens=800;审核 max_tokens=500
  • _SCRIPT_GENERATION_PROMPT 精简冗余描述(前导说明+关键要求从 ~70 行压到 ~30 行)
  • 合规审核异步后置:阶段2 generate-copy 只做关键字黑名单快速检查(不调 LLM),LLM 深度审核移到阶段3 confirm-copy TTS 前,不阻塞前端展示脚本
  • 新增 _quick_compliance_blacklist_check:广告法绝对化用语关键词替换

问题8:细粒度 phase + phase_message

  • ViralVideoJob 新增 phase_message 字段;current_stage 开始真正持久化更新
  • SQLAlchemy model 新增两列;alembic 090 幂等迁移
  • repo 层 _to_domain/save/update 同步处理
  • 新增 _set_stage 辅助:统一 set current_stage + phase_message + Redis push + DB persist
  • 所有 celery task 在关键节点调用 _set_stage 持久化
  • 中文阶段文案(前端可直接展示):
    • analyzing_images → 正在分析商品特征...
    • parsing_intent → 正在解析文案意图...
    • generating_script → 正在编排分镜脚本...
    • reviewing → 合规审核中...
    • tts_synthesizing → 正在合成AI配音...
    • rendering_video → 正在生成视频(约1-3分钟)...
    • uploading → 正在上传视频...
  • ViralVideoJobResponse 增加 current_stage/phase_message,GET /{job_id} 轮询直接返回

配套

  • .env.example + render_env.sh SHARED_SECRETS 补 DOUBAO_FAST_MODEL
  • 测试 _FakeSettings/_make_job 同步新增字段
  • 16308 个单测通过(仅 1 个 musetalk ffmpeg 环境相关测试失败,与本次改动无关)
## 问题7:generate-copy 端到端提速(目标 30-40s) - 新增 `doubao_fast_model`(默认 `doubao-1-5-pro-32k-250115`),结构化输出任务(意图解析/编导脚本/合规审核)改用快模型,不再用慢推理模型 `doubao-seed-1-6` - `call_llm` 扩展支持 `model/max_tokens/system_prompt` 参数;`chat_completion` 同步支持 model 覆盖 - 编导脚本 `temperature=0.8, max_tokens=2500`(原 4096 收紧);意图解析 `max_tokens=800`;审核 `max_tokens=500` - `_SCRIPT_GENERATION_PROMPT` 精简冗余描述(前导说明+关键要求从 ~70 行压到 ~30 行) - **合规审核异步后置**:阶段2 generate-copy 只做关键字黑名单快速检查(不调 LLM),LLM 深度审核移到阶段3 confirm-copy TTS 前,不阻塞前端展示脚本 - 新增 `_quick_compliance_blacklist_check`:广告法绝对化用语关键词替换 ## 问题8:细粒度 phase + phase_message - ViralVideoJob 新增 `phase_message` 字段;`current_stage` 开始真正持久化更新 - SQLAlchemy model 新增两列;alembic 090 幂等迁移 - repo 层 `_to_domain/save/update` 同步处理 - 新增 `_set_stage` 辅助:统一 set current_stage + phase_message + Redis push + DB persist - 所有 celery task 在关键节点调用 `_set_stage` 持久化 - 中文阶段文案(前端可直接展示): - analyzing_images → 正在分析商品特征... - parsing_intent → 正在解析文案意图... - generating_script → 正在编排分镜脚本... - reviewing → 合规审核中... - tts_synthesizing → 正在合成AI配音... - rendering_video → 正在生成视频(约1-3分钟)... - uploading → 正在上传视频... - ViralVideoJobResponse 增加 current_stage/phase_message,GET /{job_id} 轮询直接返回 ## 配套 - `.env.example` + `render_env.sh` SHARED_SECRETS 补 `DOUBAO_FAST_MODEL` - 测试 _FakeSettings/_make_job 同步新增字段 - 16308 个单测通过(仅 1 个 musetalk ffmpeg 环境相关测试失败,与本次改动无关)
xiaoxia added 1 commit 2026-10-02 11:01:20 +08:00
fix(viral-video): #2134 generate-copy 提速 + 细粒度 phase/phase_message
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
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 / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped 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 / PR Build API Image (pull_request) Successful in 51s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m7s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m27s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m0s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m9s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 4m41s
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m0s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m11s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 18m38s
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 / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 2s
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
2a739dee17
问题7(generate-copy 提速,目标 30-40s):
- 新增 doubao_fast_model 配置(默认 doubao-1-5-pro-32k-250115),结构化输出任务(意图解析/编导脚本/合规审核)改用快模型,不再使用慢推理模型 doubao-seed-1-6
- call_llm 扩展支持 model/max_tokens/system_prompt 参数;chat_completion 同步支持 model 覆盖
- 编导脚本 temperature 0.8 + max_tokens 2500(从 4096 收紧);意图解析 max_tokens 800;审核 max_tokens 500
- _SCRIPT_GENERATION_PROMPT 精简冗余描述(前导说明和关键要求章节从 ~70 行压到 ~30 行),减少输入/输出 token
- 合规审核异步后置:阶段2 generate-copy 只做关键字黑名单快速检查(不调用 LLM),LLM 深度审核移到阶段3 confirm-copy TTS 之前执行,不再阻塞前端展示脚本
- 新增 _quick_compliance_blacklist_check 处理常见广告法绝对化用语

问题8(细粒度 phase + phase_message):
- ViralVideoJob 新增 phase_message 字段(中文提示文案,前端轮询直接展示)
- SQLAlchemy ViralVideoJobModel 新增 current_stage/phase_message 列(current_stage 原已有但未持久化更新)
- repo 层 _to_domain/save/update 同步处理新字段
- alembic 090 迁移:幂等 ADD COLUMN phase_message VARCHAR(500)
- 新增 _set_stage 辅助:统一设置 current_stage + phase_message + Redis 推送 + DB 持久化
- 所有 celery task(analyze/generate-copy/render/one-click/resume)在关键节点调用 _set_stage 持久化阶段信息
- 阶段文案:analyzing_images→正在分析商品特征 / parsing_intent→正在解析文案意图 / generating_script→正在编排分镜脚本 / reviewing→合规审核中 / tts→正在合成AI配音 / rendering→正在生成视频 / uploading→正在上传视频
- ViralVideoJobResponse schema + _to_response 增加 current_stage/phase_message,前端轮询 GET /{job_id} 直接拿到

配套:
- .env.example + render_env.sh SHARED_SECRETS 补 DOUBAO_FAST_MODEL
- tests _FakeSettings/_make_job 同步新增字段
- _run_render_pipeline 兜底补生成分支不再同步调用 _step_review(由出片前统一审核处理)

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2136 | | 预览链接 | [https://pr-2136.preview.xiaoxiajianji.com](https://pr-2136.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-10-02 11:06:04 +08:00
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m50s
AI Code Review / AI Code Review (pull_request) Successful in 6m28s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 11m7s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 34s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 4m31s
1e8ba91bba
xiaoxia merged commit 3ede4dca1f into develop 2026-10-02 11:41:46 +08:00

🗑️ 预览环境已清理

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

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

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