Wildnerve-tlm01_Hybrid_Model / service_registry.py
WildnerveAI's picture
Upload 3 files
14682e0 verified
"""
Minimal service registry for dependency injection
"""
import logging
import traceback
from typing import Any, Dict, Optional
logger = logging.getLogger(__name__)
# Constants used as keys
MODEL = "model"
PRETRAINED_MODEL = "pretrained_model"
TOKENIZER = "tokenizer"
MODEL_MANAGER = "model_manager"
COMMUNICATOR = "communicator"
PIPELINE = "pipeline"
TRANSFORMER = "transformer"
class ServiceRegistry:
"""A minimal service registry that avoids loading heavy models"""
def __init__(self):
self._services = {}
def register(self, key: str, service: Any, overwrite: bool = False) -> None:
"""Register a service with the given key"""
if key in self._services:
if not overwrite:
# Change to debug level to reduce log spam for expected reregistrations
if key == 'model_class_custom':
logger.debug(f"Service with key '{key}' already registered")
else:
logger.warning(f"Service with key '{key}' already registered")
return
else:
logger.debug(f"Overwriting service with key: {key}")
self._services[key] = service
logger.debug(f"Registered service with key: {key}")
def get(self, key: str) -> Optional[Any]:
"""Get a service by its key"""
if key not in self._services:
# Don't log warning to avoid excessive logs
return None
return self._services[key]
def has(self, key: str) -> bool:
"""Check if a service with the given key exists"""
return key in self._services
def clear(self) -> None:
"""Clear all registered services"""
self._services.clear()
# Create singleton instance
registry = ServiceRegistry()
def ensure_models_registered():
"""Placeholder function - don't actually register models at startup"""
return True