Files
meijiaka-zy/python-api/app/crud/model_usage.py
T

46 lines
1.3 KiB
Python

"""
模型使用日志 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()