Files
banban/talkingq-url/implementations/base_service.py
2026-03-24 15:04:36 +08:00

22 lines
1.0 KiB
Python

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)