Fucius's picture
Upload 422 files
df6c67d verified
import time
from inference.core.cache import cache
from inference.core.env import METRICS_INTERVAL
def get_cache_model_items():
"""
Retrieve and organize cached model items within a specified time interval.
This method queries a cache for model items and retrieves those that fall
within the time interval defined by the global constant METRICS_INTERVAL.
It organizes the retrieved items into a hierarchical dictionary structure
for efficient access.
Returns:
dict: A dictionary containing model items organized by server ID, API key,
and model ID. The structure is as follows:
- Keys: Server IDs associated with models.
- Sub-keys: API keys associated with models on the server.
- Values: Lists of model IDs associated with each API key on the server.
Notes:
- This method relies on a cache system for storing and retrieving model items.
- It uses the global constant METRICS_INTERVAL to specify the time interval.
"""
now = time.time()
start = now - METRICS_INTERVAL
models = cache.zrangebyscore("models", min=start, max=now)
model_items = dict()
for model in models:
server_id, api_key, model_id = model.split(":")
if server_id not in model_items:
model_items[server_id] = dict()
if api_key not in model_items[server_id]:
model_items[server_id][api_key] = []
model_items[server_id][api_key].append(model_id)
return model_items