feat: 接入模型动态 Fallback 与调用审计
This commit is contained in:
@@ -417,7 +417,13 @@ def admin_asset_reviews_poll(request):
|
||||
@permission_classes([IsPlatformAdmin])
|
||||
def admin_tasks(request):
|
||||
"""全局 AITask 列表(?status= / ?task_type= / ?team= / ?anomaly=1 成本异常 筛 + 分页)。"""
|
||||
qs = AITask.objects.select_related("team", "model_config").order_by("-created_at")
|
||||
# 列表不返回请求/响应/完整错误正文。部分图片、视频任务的 JSON 可达数 MB,若随列表页
|
||||
# 从远程 MySQL 读取,会让只有 10 行的分页请求也长时间卡在“加载中”;详情接口仍完整读取。
|
||||
qs = (
|
||||
AITask.objects.select_related("team", "model_config")
|
||||
.defer("request_payload", "response_payload", "error_message")
|
||||
.order_by("-created_at")
|
||||
)
|
||||
st = request.query_params.get("status")
|
||||
if st in dict(AITask.Status.choices):
|
||||
qs = qs.filter(status=st)
|
||||
@@ -437,7 +443,13 @@ def admin_tasks(request):
|
||||
@api_view(["GET"])
|
||||
@permission_classes([IsPlatformAdmin])
|
||||
def admin_task_detail(request, task_id):
|
||||
task = AITask.objects.select_related("team", "model_config").filter(id=task_id).first()
|
||||
# 尝试链只在详情请求加载,列表仍保持原查询与一任务一行。
|
||||
task = (
|
||||
AITask.objects.select_related("team", "model_config")
|
||||
.prefetch_related("model_attempts")
|
||||
.filter(id=task_id)
|
||||
.first()
|
||||
)
|
||||
if task is None:
|
||||
return Response({"detail": "not found"}, status=status.HTTP_404_NOT_FOUND)
|
||||
return Response(AdminTaskDetailSerializer(task).data)
|
||||
|
||||
Reference in New Issue
Block a user