fix(viral-video): VLM lite失败自动降级pro + 10种IP人设注入prompt (#2139) #2140

Merged
auto-approve-bot merged 2 commits from fix/2139-vlm-persona-fixes into develop 2026-10-02 12:32:03 +08:00
Owner

P0:VLM「未识别·无法判断」修复

  • 精简 VLM prompt:从 16 字段缩到 9 个核心字段(name/brand/category/appearance/packaging/text_on_package/key_features/scene/summary),降低 lite 模型指令遵循压力
  • 新增 _is_vision_result_usable():name=未识别 / summary<30字 / key_features空 视为失败
  • _analyze_single_image 新增 pro_fallback_model:lite 失败/结果不可用时自动用 doubao-1-5-vision-pro 重试 1 次
  • 兜底结果补全所有字段默认值,避免前端出现「未识别·无法判断」裸结果
  • summary 字段硬性要求 100-180 字连贯中文导购描述,禁止填「无法判断」
  • max_tokens 1024→800,temperature 0.2→0.1 降低输出波动

人设字段 10 种 IP 类型支持

  • 后端 persona_id 本就是 str 字段,天然兼容新值,无需改 schema/migration
  • 新增 _PERSONA_STYLE_GUIDE 10 种 IP 人设→文案风格指导映射
  • _SCRIPT_GENERATION_PROMPT 新增 {persona_hint} 占位,注入到营销参数段,让口播口吻/出镜动作/台词风格按人设类型走

顺带修复

  • TTS voice_id 之前错误 fallback 到 job.persona_id(人设类型中文字符串)导致音色查询失败;改为只使用 job.voice_id,兜底 longxiaochun_v3

验证

  • viral-video 相关 97 个单测全部通过
  • 不影响 TTS/Seedance 出片链路(TTS 仅修 fallback bug)
## P0:VLM「未识别·无法判断」修复 - 精简 VLM prompt:从 16 字段缩到 9 个核心字段(name/brand/category/appearance/packaging/text_on_package/key_features/scene/summary),降低 lite 模型指令遵循压力 - 新增 _is_vision_result_usable():name=未识别 / summary<30字 / key_features空 视为失败 - _analyze_single_image 新增 pro_fallback_model:lite 失败/结果不可用时自动用 doubao-1-5-vision-pro 重试 1 次 - 兜底结果补全所有字段默认值,避免前端出现「未识别·无法判断」裸结果 - summary 字段硬性要求 100-180 字连贯中文导购描述,禁止填「无法判断」 - max_tokens 1024→800,temperature 0.2→0.1 降低输出波动 ## 人设字段 10 种 IP 类型支持 - 后端 persona_id 本就是 str 字段,天然兼容新值,无需改 schema/migration - 新增 _PERSONA_STYLE_GUIDE 10 种 IP 人设→文案风格指导映射 - _SCRIPT_GENERATION_PROMPT 新增 {persona_hint} 占位,注入到营销参数段,让口播口吻/出镜动作/台词风格按人设类型走 ## 顺带修复 - TTS voice_id 之前错误 fallback 到 job.persona_id(人设类型中文字符串)导致音色查询失败;改为只使用 job.voice_id,兜底 longxiaochun_v3 ## 验证 - viral-video 相关 97 个单测全部通过 - 不影响 TTS/Seedance 出片链路(TTS 仅修 fallback bug)
xiaoxia added 1 commit 2026-10-02 12:12:42 +08:00
fix(viral-video): VLM lite降级pro兜底 + 10种IP人设注入prompt + voice_id修正 (#2139)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (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 1m44s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m27s
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 / PR Build API Image (pull_request) Successful in 19s
CI/CD Pipeline / Build Staging Worker 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 Worker Image (pull_request) Successful in 32s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m17s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 3m55s
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
2810b2cf0e
P0 VLM bug:
- 精简 VLM prompt 到 9 个核心字段(name/brand/category/appearance/packaging/text_on_package/key_features/scene/summary),移除 16 字段冗余要求,降低 lite 模型指令遵循压力
- 新增 _is_vision_result_usable: name 未识别/summary<30字/key_features 空视为失败
- _analyze_single_image 支持 pro_fallback_model 参数: lite 返回不可用时自动用 doubao-1-5-vision-pro 重试 1 次,再失败返回带默认字段的结果而非裸「未识别」
- summary 字段硬性要求 100-180 字连贯中文,禁止填「无法判断」
- max_tokens 1024→800, temperature 0.2→0.1 降低输出波动

人设 IP 类型:
- 新增 _PERSONA_STYLE_GUIDE 10 种 IP 人设→风格指导映射(通用个人IP/老板型IP/专家型IP/顾问型IP/创始人IP/创业者IP/从业者经验派/避坑顾问型/知识科普型/测评种草型)
- _persona_style_hint() 查表生成文案,自由传值兜底
- _SCRIPT_GENERATION_PROMPT 新增 {persona_hint} 占位,注入到营销参数段,让口播口吻/动作描写按人设走
- schema persona_id 本来就是 str 字段,天然兼容新值,无需改 schema/migration

顺带修复:
- TTS voice_id 之前 fallback 到 job.persona_id(人设类型字符串)导致音色查询失败;改为只使用 job.voice_id,兜底 longxiaochun_v3

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2140 | | 预览链接 | [https://pr-2140.preview.xiaoxiajianji.com](https://pr-2140.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-10-02 12:19:47 +08:00
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m24s
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 / 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
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m21s
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 / PR Build API Image (pull_request) Successful in 58s
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 Worker Image (pull_request) Successful in 1m10s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m40s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m44s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m9s
AI Code Review / AI Code Review (pull_request) Successful in 6m44s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m32s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m33s
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 / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 7m27s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 31s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 45s
a170f2bc7f
auto-approve-bot merged commit b31205e965 into develop 2026-10-02 12:32:03 +08:00
auto-approve-bot deleted branch fix/2139-vlm-persona-fixes 2026-10-02 12:32:06 +08:00

🗑️ 预览环境已清理

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

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

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