优化视频提炼
This commit is contained in:
@@ -711,9 +711,10 @@ class VideoDigestView(APIView):
|
||||
parser_classes = [MultiPartParser, FormParser, JSONParser]
|
||||
|
||||
def get(self, request):
|
||||
from .video_digest import get_inflight_team_digest, list_team_digest_history
|
||||
from .video_digest import expire_stale_team_digests, get_inflight_team_digest, list_team_digest_history
|
||||
|
||||
team = get_current_team(request.user)
|
||||
expire_stale_team_digests(team=team)
|
||||
results = list_team_digest_history(team=team)
|
||||
return Response({
|
||||
"results": results,
|
||||
@@ -723,7 +724,8 @@ class VideoDigestView(APIView):
|
||||
|
||||
def post(self, request):
|
||||
upload = request.FILES.get("file") or request.data.get("file")
|
||||
if upload is None:
|
||||
reuse_task_id = request.data.get("reuse_task_id") or None
|
||||
if upload is None and not reuse_task_id:
|
||||
return Response({"detail": "请先上传参考视频"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
require_worker_task("apps.ai.tasks.run_video_digest_task")
|
||||
from .video_digest import VideoDigestError, submit_team_digest
|
||||
@@ -734,6 +736,7 @@ class VideoDigestView(APIView):
|
||||
team=team,
|
||||
user=request.user,
|
||||
upload=upload,
|
||||
reuse_task_id=reuse_task_id,
|
||||
model_config_id=request.data.get("model_config_id") or None,
|
||||
)
|
||||
except VideoDigestError as exc:
|
||||
@@ -745,12 +748,16 @@ class VideoDigestView(APIView):
|
||||
{"detail": public_error.fallback_message, "error": public_error.as_dict()},
|
||||
status=status.HTTP_502_BAD_GATEWAY,
|
||||
)
|
||||
return Response({"name": getattr(upload, "name", "") or "参考视频", **result}, status=status.HTTP_202_ACCEPTED)
|
||||
return Response(
|
||||
{"name": getattr(upload, "name", "") or result.get("file_name") or "参考视频", **result},
|
||||
status=status.HTTP_202_ACCEPTED,
|
||||
)
|
||||
|
||||
|
||||
class VideoDigestDetailView(APIView):
|
||||
"""GET /api/ai/video-digest/<id>/ 轮询提炼任务。
|
||||
PATCH /api/ai/video-digest/<id>/ 保存编辑后的提示词到这条历史。
|
||||
DELETE /api/ai/video-digest/<id>/ 取消进行中的提炼并退预留积分。
|
||||
"""
|
||||
|
||||
parser_classes = [JSONParser, FormParser]
|
||||
@@ -780,6 +787,15 @@ class VideoDigestDetailView(APIView):
|
||||
return Response({"detail": "记录不存在"}, status=status.HTTP_404_NOT_FOUND)
|
||||
return Response(item)
|
||||
|
||||
def delete(self, request, task_id):
|
||||
from .video_digest import cancel_team_digest
|
||||
|
||||
team = get_current_team(request.user)
|
||||
item = cancel_team_digest(team=team, task_id=task_id)
|
||||
if item is None:
|
||||
return Response({"detail": "记录不存在"}, status=status.HTTP_404_NOT_FOUND)
|
||||
return Response(item)
|
||||
|
||||
|
||||
class FreeVideoView(APIView):
|
||||
"""自由创作·视频生成(不绑项目,universal 全能参考 / keyframe 首尾帧)。
|
||||
|
||||
Reference in New Issue
Block a user