优化视频复刻和商品内容大小

This commit is contained in:
Azmat@qq.com
2026-08-28 18:42:28 +08:00
parent a618f02315
commit 6b6146e595
20 changed files with 1557 additions and 382 deletions
+9 -4
View File
@@ -866,9 +866,8 @@ class VideoReplaceView(APIView):
def post(self, request):
require_worker()
# 商品复刻的拆解在 worker 里跑;worker 还是旧镜像的话消息会被静默丢弃 → 永久「提炼中」。
if str((request.data or {}).get("replace_mode") or "") == "product":
require_worker_task("apps.ai.tasks.run_video_replace_digest_task")
# 复刻的拆解在 worker 里跑;worker 还是旧镜像的话消息会被静默丢弃 → 永久「提炼中」。
require_worker_task("apps.ai.tasks.run_video_replace_digest_task")
from .video_replace import (
VideoReplaceInProgress,
serialize_video_replace_task,
@@ -897,8 +896,14 @@ class VideoReplaceView(APIView):
public_error = classify_generation_error(
exc, operation="video_generate", internal_kind=internal_kind
)
# detail 用校验本身的原话:submit_video_replace 抛的 ValueError 全都是写给用户看的
# 中文("这个商品还没有可用图片""参考视频不能超过 30 秒"…)。套成 invalid_input 那句
# 万能文案("请检查描述、参数或素材格式后重试")等于把原因丢了,用户和排查都没法下手。
# error 里仍带结构化 code/action,前端要按类型渲染照旧可用。
payload = public_error.as_dict()
payload["fallback_message"] = message
return Response(
{"detail": public_error.fallback_message, "error": public_error.as_dict()},
{"detail": message, "error": payload},
status=status.HTTP_400_BAD_REQUEST,
)
task = _free_video_task_queryset(team).get(id=task.id)