""" 模型使用日志 CRUD 操作 ====================== 仅保留使用日志功能,模型配置已迁移到 YAML 文件。 """ from sqlalchemy import func, select from sqlalchemy.ext.asyncio import AsyncSession from app.crud.base import CRUDBase from app.models.model_usage import ModelUsageLog class ModelUsageLogCRUD(CRUDBase[ModelUsageLog]): """模型使用日志 CRUD""" def __init__(self) -> None: super().__init__(ModelUsageLog) async def get_daily_cost(self, db: AsyncSession, *, date: str) -> float: """获取某日总成本""" result = await db.execute( select(func.sum(ModelUsageLog.cost_cny)).where( func.date(ModelUsageLog.created_at) == date ) ) return result.scalar() or 0.0 async def get_by_user( self, db: AsyncSession, *, user_id: str, skip: int = 0, limit: int = 100 ) -> list[ModelUsageLog]: """获取用户的使用日志""" result = await db.execute( select(ModelUsageLog) .where(ModelUsageLog.user_id == user_id) .order_by(ModelUsageLog.created_at.desc()) .offset(skip) .limit(limit) ) return list(result.scalars().all()) # 导出实例 model_usage_log = ModelUsageLogCRUD()