diff --git a/apps/worker/worker_app/tasks/viral_video.py b/apps/worker/worker_app/tasks/viral_video.py index ed648fe0f..04bda80cf 100644 --- a/apps/worker/worker_app/tasks/viral_video.py +++ b/apps/worker/worker_app/tasks/viral_video.py @@ -910,18 +910,19 @@ def _step_script_generation(job: ViralVideoJob, intent: dict, image_analysis: di _s = get_shared_settings() _fast = _s.doubao_fast_model _pro = getattr(_s, "doubao_model", None) or _fast + _script_fast_tmo = int(os.environ.get("VIRAL_VIDEO_SCRIPT_FAST_TIMEOUT", "150")) + _script_pro_tmo = int(os.environ.get("VIRAL_VIDEO_SCRIPT_PRO_TIMEOUT", "150")) try: - # 第一次:快模型 25s - normalized = _try_gen(_fast, 0.8, 2500, "fast-first", tmo=90) + # #2217: doubao-seed-2-1-pro生成长编导脚本高峰期>90s,上调到150s,支持ENV覆盖 + normalized = _try_gen(_fast, 0.8, 2500, "fast-first", tmo=_script_fast_tmo) if normalized is not None: return normalized - # #2183: 实测pro 1500tok输出需75.8s,单次timeout提到90s - normalized = _try_gen(_fast, 0.6, 3200, "fast-retry", tmo=90) + normalized = _try_gen(_fast, 0.6, 3200, "fast-retry", tmo=_script_fast_tmo) if normalized is not None: return normalized - # 第三次:用主力模型兜底,给 120s + # 第三次:用主力模型兜底 if _pro and _pro != _fast: - normalized = _try_gen(_pro, 0.7, 3500, "pro-fallback", tmo=120) + normalized = _try_gen(_pro, 0.7, 3500, "pro-fallback", tmo=_script_pro_tmo) if normalized is not None: return normalized logger.warning("[爆款视频] 编导脚本三次都未生成合格结果,使用兜底脚本") diff --git a/packages/shared/ai_client.py b/packages/shared/ai_client.py index 5e45ca31f..3b4dc4692 100755 --- a/packages/shared/ai_client.py +++ b/packages/shared/ai_client.py @@ -291,6 +291,7 @@ class DoubaoClient: data.get("usage", {}).get("completion_tokens", 0), _elapsed, attempt + 1, + _req_timeout, ) return content.strip() except Exception as e: