diff --git a/apps/api/app/api/routes/assets.py b/apps/api/app/api/routes/assets.py index 1bf544b23..65ddb927d 100755 --- a/apps/api/app/api/routes/assets.py +++ b/apps/api/app/api/routes/assets.py @@ -124,33 +124,37 @@ def list_assets( if style: result = [i for i in result if (i.metadata or {}).get("style") == style] if classification: - result = [ - i for i in result - if (i.metadata or {}).get("classification") == classification - ] + result = [i for i in result if (i.metadata or {}).get("classification") == classification] if filter_tag_ids: tag_set = set(filter_tag_ids) result = [i for i in result if tag_set.issubset(set(getattr(i, "tag_ids", [])))] if smart_view: - meta = lambda a: a.metadata or {} - use_count = lambda a: int(meta(a).get("generation_use_count") or 0) - review_status = lambda a: meta(a).get("review_status", "") + + def __meta(a): + return a.metadata or {} + + def __use_count(a): + return int(__meta(a).get("generation_use_count") or 0) + + def __review_status(a): + return __meta(a).get("review_status", "") + if smart_view == "recommended": result = [i for i in result if i.quality_score is not None and i.quality_score >= 80] elif smart_view == "cautious": result = [i for i in result if i.quality_score is not None and 60 <= i.quality_score < 80] elif smart_view == "risky": result = [ - i for i in result - if (i.quality_score is not None and i.quality_score < 60) - or review_status(i) == "rejected" + i + for i in result + if (i.quality_score is not None and i.quality_score < 60) or _review_status(i) == "rejected" ] elif smart_view == "unused": - result = [i for i in result if use_count(i) == 0] + result = [i for i in result if _use_count(i) == 0] elif smart_view == "used": - result = [i for i in result if use_count(i) > 0] + result = [i for i in result if _use_count(i) > 0] elif smart_view == "pending_review": - result = [i for i in result if review_status(i) == "pending_review"] + result = [i for i in result if _review_status(i) == "pending_review"] return result # ── 优化路径:无内存过滤时,使用 DB 级分页 ── @@ -269,7 +273,7 @@ def list_assets( ) -def _apply_asset_review_status(item, review_status: str): +def _apply_asset__review_status(item, review_status: str): item.metadata = { **item.metadata, "review_status": review_status, @@ -278,7 +282,7 @@ def _apply_asset_review_status(item, review_status: str): @router.patch("/{asset_id}/review", response_model=AssetResponse) -def update_asset_review_status( +def update_asset__review_status( asset_id: str, request: UpdateAssetReviewRequest, authenticated_user: AuthenticatedUser = Depends(get_current_user), @@ -289,7 +293,7 @@ def update_asset_review_status( if item is None: raise HTTPException(status_code=404, detail=f"Asset {asset_id} not found") check_project_access(item.project_id, authenticated_user.user.id, project_repository) - _apply_asset_review_status(item, request.review_status) + _apply_asset__review_status(item, request.review_status) updated = asset_repository.update(item) return _to_asset_response(updated)