mirror of https://github.com/Mai-with-u/MaiBot.git
更新原版事件触发
parent
8b7d21fa4f
commit
4f6abe86db
|
|
@ -258,10 +258,9 @@ class ChatBot:
|
|||
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
|
||||
return
|
||||
|
||||
# 触发 ON_MESSAGE 事件
|
||||
on_message_event = event_manager.get_event("on_message")
|
||||
if not await on_message_event.activate(message):
|
||||
return
|
||||
result = await event_manager.trigger_event("on_message",message=message)
|
||||
if not result.all_continue_process():
|
||||
raise UserWarning(f"插件{result.get_summary().get('stopped_handlers','')}于消息到达时取消了消息处理")
|
||||
|
||||
# 确认从接口发来的message是否有自定义的prompt模板信息
|
||||
if message.message_info.template_info and not message.message_info.template_info.template_default:
|
||||
|
|
|
|||
|
|
@ -206,10 +206,10 @@ class DefaultReplyer:
|
|||
|
||||
from src.plugin_system.core.event_manager import event_manager
|
||||
# 触发 POST_LLM 事件
|
||||
post_llm_event = event_manager.get_event("post_llm")
|
||||
if not from_plugin:
|
||||
if not await post_llm_event.activate(None, prompt, None, stream_id=stream_id):
|
||||
raise UserWarning("插件于请求前中断了内容生成")
|
||||
result = await event_manager.trigger_event("post_llm",prompt=prompt,llm_response=llm_response,stream_id=stream_id)
|
||||
if not result.all_continue_process():
|
||||
raise UserWarning(f"插件{result.get_summary().get("stopped_handlers","")}于请求前中断了内容生成")
|
||||
|
||||
# 4. 调用 LLM 生成回复
|
||||
content = None
|
||||
|
|
@ -226,10 +226,10 @@ class DefaultReplyer:
|
|||
|
||||
from src.plugin_system.core.event_manager import event_manager
|
||||
# 触发 AFTER_LLM 事件
|
||||
after_llm_event = event_manager.get_event("on_message")
|
||||
if not from_plugin:
|
||||
if not await after_llm_event.activate(None, prompt, llm_response, stream_id=stream_id):
|
||||
raise UserWarning("插件于请求后取消了内容生成")
|
||||
result = await event_manager.trigger_event("after_llm",prompt=prompt,llm_response=llm_response,stream_id=stream_id)
|
||||
if not result.all_continue_process():
|
||||
raise UserWarning(f"插件{result.get_summary().get("stopped_handlers","")}于请求后取消了内容生成")
|
||||
|
||||
except UserWarning as e:
|
||||
raise e
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class BaseEvent:
|
|||
def __name__(self):
|
||||
return self.name
|
||||
|
||||
async def activate(self, params: dict = {}) -> HandlerResultsCollection:
|
||||
async def activate(self, **params: dict) -> HandlerResultsCollection:
|
||||
"""激活事件,执行所有订阅的处理器
|
||||
|
||||
Args:
|
||||
|
|
|
|||
|
|
@ -262,12 +262,12 @@ class EventManager:
|
|||
|
||||
return {handler.handler_name: handler for handler in event.subscribers}
|
||||
|
||||
async def trigger_event(self, event_name: str, params: Dict[str, Any] = None) -> Optional[HandlerResultsCollection]:
|
||||
async def trigger_event(self, event_name: str, **params: Dict[str, Any]) -> Optional[HandlerResultsCollection]:
|
||||
"""触发指定事件
|
||||
|
||||
Args:
|
||||
event_name (str): 事件名称
|
||||
params (Dict[str, Any]): 传递给处理器的参数
|
||||
**params (Dict[str, Any]): 传递给处理器的参数
|
||||
|
||||
Returns:
|
||||
HandlerResultsCollection: 所有处理器的执行结果,事件不存在返回None
|
||||
|
|
|
|||
Loading…
Reference in New Issue