Spaces:
Runtime error
Runtime error
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 | |