from typing import Any, Dict, Optional from services.config_manager import config_manager class BaseService: """所有服务实现的基类,提供统一的配置处理功能""" def __init__(self, service_type: str, selected_role: Optional[Dict[str, Any]] = None): self.selected_role = selected_role self.service_type = service_type self.config = config_manager.get_service_config(service_type, selected_role) def get_config(self, key: str, default_value: Any = None) -> Any: """获取配置值,按照优先级规则""" if key in self.config: return self.config[key] return config_manager.get_config_value(key, self.selected_role, default_value) def update_config(self, new_role_config: Dict[str, Any] = None) -> None: """更新服务配置,用于动态切换角色时""" self.selected_role = new_role_config if new_role_config else self.selected_role self.config = config_manager.get_service_config(self.service_type, self.selected_role)