"""缓存层:模型列表等热数据 TTL 缓存。""" from __future__ import annotations import asyncio import time from typing import Any, Optional from cachetools import TTLCache # 模型列表缓存:默认 30s TTL,最多 32 个厂商 _models_cache: "TTLCache[str, list[Any]]" = TTLCache(maxsize=32, ttl=30) def get_cached_models(provider_id: str) -> Optional[list[Any]]: return _models_cache.get(provider_id) def set_cached_models(provider_id: str, models: list[Any]) -> None: _models_cache[provider_id] = models def invalidate_models_cache(provider_id: Optional[str] = None) -> None: if provider_id: _models_cache.pop(provider_id, None) else: _models_cache.clear()