refactor: 移除兴趣计算器相关代码和配置,优化系统管理插件
This commit is contained in:
@@ -11,7 +11,6 @@ if TYPE_CHECKING:
|
||||
from src.common.data_models.database_data_model import DatabaseMessages
|
||||
|
||||
from src.common.logger import get_logger
|
||||
from src.plugin_system.base.component_types import ComponentType, InterestCalculatorInfo
|
||||
|
||||
logger = get_logger("base_interest_calculator")
|
||||
|
||||
@@ -210,26 +209,6 @@ class BaseInterestCalculator(ABC):
|
||||
return default
|
||||
return current
|
||||
|
||||
@classmethod
|
||||
def get_interest_calculator_info(cls) -> "InterestCalculatorInfo":
|
||||
"""从类属性生成InterestCalculatorInfo
|
||||
|
||||
遵循BaseCommand和BaseAction的设计模式,从类属性自动生成组件信息
|
||||
|
||||
Returns:
|
||||
InterestCalculatorInfo: 生成的兴趣计算器信息对象
|
||||
"""
|
||||
name = getattr(cls, "component_name", cls.__name__.lower().replace("calculator", ""))
|
||||
if "." in name:
|
||||
logger.error(f"InterestCalculator名称 '{name}' 包含非法字符 '.',请使用下划线替代")
|
||||
raise ValueError(f"InterestCalculator名称 '{name}' 包含非法字符 '.',请使用下划线替代")
|
||||
|
||||
return InterestCalculatorInfo(
|
||||
name=name,
|
||||
component_type=ComponentType.INTEREST_CALCULATOR,
|
||||
description=getattr(cls, "component_description", cls.__doc__ or "兴趣度计算器"),
|
||||
enabled_by_default=getattr(cls, "enabled_by_default", True),
|
||||
)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return (
|
||||
|
||||
@@ -7,7 +7,6 @@ from src.plugin_system.base.component_types import (
|
||||
CommandInfo,
|
||||
ComponentType,
|
||||
EventHandlerInfo,
|
||||
InterestCalculatorInfo,
|
||||
PlusCommandInfo,
|
||||
PromptInfo,
|
||||
ToolInfo,
|
||||
@@ -17,7 +16,6 @@ from .base_action import BaseAction
|
||||
from .base_adapter import BaseAdapter
|
||||
from .base_command import BaseCommand
|
||||
from .base_events_handler import BaseEventHandler
|
||||
from .base_interest_calculator import BaseInterestCalculator
|
||||
from .base_prompt import BasePrompt
|
||||
from .base_tool import BaseTool
|
||||
from .plugin_base import PluginBase
|
||||
@@ -59,15 +57,6 @@ class BasePlugin(PluginBase):
|
||||
logger.warning(f"Action组件 {component_class.__name__} 缺少 get_action_info 方法")
|
||||
return None
|
||||
|
||||
elif component_type == ComponentType.INTEREST_CALCULATOR:
|
||||
if hasattr(component_class, "get_interest_calculator_info"):
|
||||
return component_class.get_interest_calculator_info()
|
||||
else:
|
||||
logger.warning(
|
||||
f"InterestCalculator组件 {component_class.__name__} 缺少 get_interest_calculator_info 方法"
|
||||
)
|
||||
return None
|
||||
|
||||
elif component_type == ComponentType.PLUS_COMMAND:
|
||||
# PlusCommand组件的get_info方法尚未实现
|
||||
logger.warning("PlusCommand组件的get_info方法尚未实现")
|
||||
@@ -123,7 +112,6 @@ class BasePlugin(PluginBase):
|
||||
| tuple[PlusCommandInfo, type[PlusCommand]]
|
||||
| tuple[EventHandlerInfo, type[BaseEventHandler]]
|
||||
| tuple[ToolInfo, type[BaseTool]]
|
||||
| tuple[InterestCalculatorInfo, type[BaseInterestCalculator]]
|
||||
| tuple[PromptInfo, type[BasePrompt]]
|
||||
]:
|
||||
"""获取插件包含的组件列表
|
||||
|
||||
@@ -48,7 +48,6 @@ class ComponentType(Enum):
|
||||
SCHEDULER = "scheduler" # 定时任务组件(预留)
|
||||
EVENT_HANDLER = "event_handler" # 事件处理组件
|
||||
CHATTER = "chatter" # 聊天处理器组件
|
||||
INTEREST_CALCULATOR = "interest_calculator" # 兴趣度计算组件
|
||||
PROMPT = "prompt" # Prompt组件
|
||||
ROUTER = "router" # 路由组件
|
||||
ADAPTER = "adapter" # 适配器组件
|
||||
@@ -298,17 +297,6 @@ class ChatterInfo(ComponentInfo):
|
||||
self.component_type = ComponentType.CHATTER
|
||||
|
||||
|
||||
@dataclass
|
||||
class InterestCalculatorInfo(ComponentInfo):
|
||||
"""兴趣度计算组件信息(单例模式)"""
|
||||
|
||||
enabled_by_default: bool = True # 是否默认启用
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
self.component_type = ComponentType.INTEREST_CALCULATOR
|
||||
|
||||
|
||||
@dataclass
|
||||
class EventInfo(ComponentInfo):
|
||||
"""事件组件信息"""
|
||||
|
||||
@@ -17,7 +17,6 @@ from src.plugin_system.base.base_chatter import BaseChatter
|
||||
from src.plugin_system.base.base_command import BaseCommand
|
||||
from src.plugin_system.base.base_events_handler import BaseEventHandler
|
||||
from src.plugin_system.base.base_http_component import BaseRouterComponent
|
||||
from src.plugin_system.base.base_interest_calculator import BaseInterestCalculator
|
||||
from src.plugin_system.base.base_prompt import BasePrompt
|
||||
from src.plugin_system.base.base_tool import BaseTool
|
||||
from src.plugin_system.base.component_types import (
|
||||
@@ -28,7 +27,6 @@ from src.plugin_system.base.component_types import (
|
||||
ComponentInfo,
|
||||
ComponentType,
|
||||
EventHandlerInfo,
|
||||
InterestCalculatorInfo,
|
||||
PluginInfo,
|
||||
PlusCommandInfo,
|
||||
PromptInfo,
|
||||
@@ -48,7 +46,6 @@ ComponentClassType = (
|
||||
| type[BaseEventHandler]
|
||||
| type[PlusCommand]
|
||||
| type[BaseChatter]
|
||||
| type[BaseInterestCalculator]
|
||||
| type[BasePrompt]
|
||||
| type[BaseRouterComponent]
|
||||
| type[BaseAdapter]
|
||||
@@ -144,10 +141,6 @@ class ComponentRegistry:
|
||||
self._chatter_registry: dict[str, type[BaseChatter]] = {}
|
||||
self._enabled_chatter_registry: dict[str, type[BaseChatter]] = {}
|
||||
|
||||
# InterestCalculator 相关
|
||||
self._interest_calculator_registry: dict[str, type[BaseInterestCalculator]] = {}
|
||||
self._enabled_interest_calculator_registry: dict[str, type[BaseInterestCalculator]] = {}
|
||||
|
||||
# Prompt 相关
|
||||
self._prompt_registry: dict[str, type[BasePrompt]] = {}
|
||||
self._enabled_prompt_registry: dict[str, type[BasePrompt]] = {}
|
||||
@@ -283,7 +276,6 @@ class ComponentRegistry:
|
||||
ComponentType.TOOL: self._register_tool,
|
||||
ComponentType.EVENT_HANDLER: self._register_event_handler,
|
||||
ComponentType.CHATTER: self._register_chatter,
|
||||
ComponentType.INTEREST_CALCULATOR: self._register_interest_calculator,
|
||||
ComponentType.PROMPT: self._register_prompt,
|
||||
ComponentType.ROUTER: self._register_router,
|
||||
ComponentType.ADAPTER: self._register_adapter,
|
||||
@@ -344,9 +336,6 @@ class ComponentRegistry:
|
||||
case ComponentType.CHATTER:
|
||||
self._chatter_registry.pop(component_name, None)
|
||||
self._enabled_chatter_registry.pop(component_name, None)
|
||||
case ComponentType.INTEREST_CALCULATOR:
|
||||
self._interest_calculator_registry.pop(component_name, None)
|
||||
self._enabled_interest_calculator_registry.pop(component_name, None)
|
||||
case ComponentType.PROMPT:
|
||||
self._prompt_registry.pop(component_name, None)
|
||||
self._enabled_prompt_registry.pop(component_name, None)
|
||||
@@ -497,25 +486,6 @@ class ComponentRegistry:
|
||||
self._enabled_chatter_registry[info.name] = chatter_class
|
||||
return True
|
||||
|
||||
def _register_interest_calculator(self, info: ComponentInfo, cls: ComponentClassType) -> bool:
|
||||
"""
|
||||
注册 InterestCalculator 组件到特定注册表。
|
||||
|
||||
Args:
|
||||
info: InterestCalculator 组件的元数据信息
|
||||
cls: InterestCalculator 组件的类定义
|
||||
|
||||
Returns:
|
||||
注册成功返回 True
|
||||
"""
|
||||
calc_info = cast(InterestCalculatorInfo, info)
|
||||
calc_class = cast(type[BaseInterestCalculator], cls)
|
||||
_assign_plugin_attrs(calc_class, info.plugin_name, self.get_plugin_config(info.plugin_name) or {})
|
||||
self._interest_calculator_registry[info.name] = calc_class
|
||||
if calc_info.enabled:
|
||||
self._enabled_interest_calculator_registry[info.name] = calc_class
|
||||
return True
|
||||
|
||||
def _register_prompt(self, info: ComponentInfo, cls: ComponentClassType) -> bool:
|
||||
"""
|
||||
注册 Prompt 组件到 Prompt 特定注册表。
|
||||
@@ -950,26 +920,6 @@ class ComponentRegistry:
|
||||
info = self.get_component_info(chatter_name, ComponentType.CHATTER)
|
||||
return info if isinstance(info, ChatterInfo) else None
|
||||
|
||||
# --- InterestCalculator ---
|
||||
def get_interest_calculator_registry(self) -> dict[str, type[BaseInterestCalculator]]:
|
||||
"""获取所有已注册的 InterestCalculator 类。"""
|
||||
return self._interest_calculator_registry.copy()
|
||||
|
||||
def get_enabled_interest_calculator_registry(self) -> dict[str, type[BaseInterestCalculator]]:
|
||||
"""
|
||||
获取所有已启用的 InterestCalculator 类。
|
||||
|
||||
会检查组件的全局启用状态。
|
||||
|
||||
Returns:
|
||||
可用的 InterestCalculator 名称到类的字典
|
||||
"""
|
||||
return {
|
||||
name: cls
|
||||
for name, cls in self._interest_calculator_registry.items()
|
||||
if self.is_component_available(name, ComponentType.INTEREST_CALCULATOR)
|
||||
}
|
||||
|
||||
# --- Prompt ---
|
||||
def get_prompt_registry(self) -> dict[str, type[BasePrompt]]:
|
||||
"""获取所有已注册的 Prompt 类。"""
|
||||
|
||||
@@ -110,8 +110,6 @@ class ComponentStateManager:
|
||||
)
|
||||
case ComponentType.CHATTER:
|
||||
self._registry._enabled_chatter_registry[component_name] = target_class # type: ignore
|
||||
case ComponentType.INTEREST_CALCULATOR:
|
||||
self._registry._enabled_interest_calculator_registry[component_name] = target_class # type: ignore
|
||||
case ComponentType.PROMPT:
|
||||
self._registry._enabled_prompt_registry[component_name] = target_class # type: ignore
|
||||
case ComponentType.ADAPTER:
|
||||
@@ -161,8 +159,6 @@ class ComponentStateManager:
|
||||
event_manager.remove_event_handler(component_name)
|
||||
case ComponentType.CHATTER:
|
||||
self._registry._enabled_chatter_registry.pop(component_name, None)
|
||||
case ComponentType.INTEREST_CALCULATOR:
|
||||
self._registry._enabled_interest_calculator_registry.pop(component_name, None)
|
||||
case ComponentType.PROMPT:
|
||||
self._registry._enabled_prompt_registry.pop(component_name, None)
|
||||
case ComponentType.ADAPTER:
|
||||
|
||||
Reference in New Issue
Block a user