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