event重构暂时完成,待测试

This commit is contained in:
Windpicker-owo
2025-08-25 17:46:23 +08:00
parent faf13e39b6
commit cbf9a21c1f
10 changed files with 77 additions and 298 deletions

View File

@@ -72,7 +72,7 @@ class BaseTool(ABC):
"""
raise NotImplementedError("子类必须实现execute方法")
async def direct_execute(self, **function_args: dict[str, Any]) -> dict[str, Any]:
async def direct_execute(self, **kwargs: dict[str, Any]) -> dict[str, Any]:
"""直接执行工具函数(供插件调用)
通过该方法,插件可以直接调用工具,而不需要传入字典格式的参数
插件可以直接调用此方法,用更加明了的方式传入参数
@@ -88,10 +88,10 @@ class BaseTool(ABC):
"""
parameter_required = [param[0] for param in self.parameters if param[3]] # 获取所有必填参数名
for param_name in parameter_required:
if param_name not in function_args:
if param_name not in kwargs:
raise ValueError(f"工具类 {self.__class__.__name__} 缺少必要参数: {param_name}")
return await self.execute(function_args)
return await self.execute(kwargs)
def get_config(self, key: str, default=None):
"""获取插件配置值,使用嵌套键访问

View File

@@ -12,9 +12,9 @@ class ComponentType(Enum):
ACTION = "action" # 动作组件
COMMAND = "command" # 命令组件
TOOL = "tool" # 服务组件(预留)
TOOL = "tool" # 工具组件
SCHEDULER = "scheduler" # 定时任务组件(预留)
EVENT_HANDLER = "event_handler" # 事件处理组件(预留)
EVENT_HANDLER = "event_handler" # 事件处理组件
def __str__(self) -> str:
return self.value
@@ -188,6 +188,32 @@ class EventHandlerInfo(ComponentInfo):
super().__post_init__()
self.component_type = ComponentType.EVENT_HANDLER
@dataclass
class EventInfo(ComponentInfo):
"""事件组件信息"""
def __post_init__(self):
super().__post_init__()
self.component_type = ComponentType.EVENT
# 事件类型枚举
class EventType(Enum):
"""
事件类型枚举类
"""
ON_START = "on_start" # 启动事件,用于调用按时任务
ON_STOP = "on_stop" # 停止事件,用于调用按时任务
ON_MESSAGE = "on_message"
ON_PLAN = "on_plan"
POST_LLM = "post_llm"
AFTER_LLM = "after_llm"
POST_SEND = "post_send"
AFTER_SEND = "after_send"
UNKNOWN = "unknown" # 未知事件类型
def __str__(self) -> str:
return self.value
@dataclass
class PluginInfo: