优化Local Ai Agent事件触发机制
This commit is contained in:
parent
89277d1f49
commit
3e0aa1e3f3
@ -9,7 +9,6 @@ from jingrow.utils.jingrow_api import get_record_list, get_page_meta
|
||||
|
||||
def _get_all_local_ai_agents():
|
||||
"""获取所有启用的事件触发 Local Ai Agent,支持按PageType和Module分组缓存返回。
|
||||
通过本地 API 封装获取(非适配器)。
|
||||
"""
|
||||
res = get_record_list(
|
||||
"Local Ai Agent",
|
||||
@ -40,7 +39,6 @@ def _get_all_local_ai_agents():
|
||||
|
||||
def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
|
||||
"""本地版 Local Ai Agent 事件驱动机制。
|
||||
|
||||
- 支持按 pagetype 与 module 分组、合并去重
|
||||
- condition 支持 Jinja2 表达式
|
||||
- 使用本地任务队列,避免链式重复触发
|
||||
@ -95,7 +93,6 @@ def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
|
||||
for agent in agents_for_pg:
|
||||
event = method if method in event_list else None
|
||||
if event and (agent.get("event_type") == event):
|
||||
# 简化:不做最近去重缓存,直接执行
|
||||
|
||||
trigger = False
|
||||
if not agent.get("condition"):
|
||||
|
||||
@ -35,15 +35,7 @@ def execute_hooks(pagetype: str, name: str, hook_name: str, data: Dict[str, Any]
|
||||
hook_full_name = f"page.{pagetype}.{hook_name}"
|
||||
# 重要:不要展开 data,避免与 HookRegistry.send(name=...) 参数名冲突
|
||||
pg_obj = jingrow.get_pg(pagetype, name)
|
||||
# 1) 精确钩子
|
||||
execute_hook(
|
||||
hook_full_name,
|
||||
sender=pagetype,
|
||||
page=pg_obj,
|
||||
event=hook_name,
|
||||
data=data or {},
|
||||
)
|
||||
# 2) 通配钩子(与 hooks.py 的 "*" 对齐)
|
||||
# 仅发通配钩子(对齐SaaS:通配注册+统一分派)
|
||||
wildcard_hook = f"page.*.{hook_name}"
|
||||
execute_hook(
|
||||
wildcard_hook,
|
||||
@ -65,13 +57,6 @@ def execute_hooks_async(pagetype: str, name: str, hook_name: str, data: Dict[str
|
||||
# 异步丢到事件循环(同样不要展开 data)。同时发送精确与通配钩子
|
||||
import asyncio
|
||||
async def _fire():
|
||||
await execute_hook_async(
|
||||
hook_full_name,
|
||||
sender=pagetype,
|
||||
page=pg,
|
||||
event=hook_name,
|
||||
data=data or {},
|
||||
)
|
||||
wildcard_hook = f"page.*.{hook_name}"
|
||||
await execute_hook_async(
|
||||
wildcard_hook,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user