@app.get("/api/v2/stats/model-usage") async def model_usage_stats( days: int = Query(default=7, ge=1, le=90), purpose: str = Query(default="", pattern="^(chat|guard|knowledge)?$"), provider_id: str = Query(default="", max_length=256), model: str = Query(default="", max_length=512), account_id: int | None = None, principal: Principal = Depends(require("stats:read")), ) -> dict: return database.model_usage_stats( days, resolve_admin_tenant(principal, account_id), purpose, provider_id, model) @app.get("/api/v2/stats/model-usage/log") async def model_usage_log( days: int = Query(default=7, ge=1, le=90), limit: int = Query(default=50, ge=1, le=200), offset: int = Query(default=0, ge=0), purpose: str = Query(default="", pattern="^(chat|guard|knowledge)?$"), provider_id: str = Query(default="", max_length=256), model: str = Query(default="", max_length=512), account_id: int | None = None, principal: Principal = Depends(require("stats:read")), ) -> dict: return database.list_model_usage( days, limit, offset, resolve_admin_tenant(principal, account_id), purpose, provider_id, model)