修复重构Page类后智能体事件触发无效的问题
This commit is contained in:
parent
c73bacff48
commit
6644227dd8
@ -54,13 +54,22 @@ def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
|
||||
ai_agents = _get_all_local_ai_agents()
|
||||
|
||||
# pagetype 分组
|
||||
agents_by_pagetype = ai_agents.get(pg.pagetype, []) or []
|
||||
# 兼容 dict 或对象:统一读取 pagetype
|
||||
def _get_pg_field(obj, key):
|
||||
if isinstance(obj, dict):
|
||||
return obj.get(key)
|
||||
return getattr(obj, key, None)
|
||||
|
||||
pg_pagetype = _get_pg_field(pg, "pagetype")
|
||||
pg_name = _get_pg_field(pg, "name")
|
||||
|
||||
agents_by_pagetype = ai_agents.get(pg_pagetype, []) or []
|
||||
|
||||
# module 分组
|
||||
# 获取 pagetype 所属 module(通过 API 获取 module/app)
|
||||
module_name = None
|
||||
try:
|
||||
ma = get_pagetype_module_app(pg.pagetype)
|
||||
ma = get_pagetype_module_app(pg_pagetype)
|
||||
if ma.get("success"):
|
||||
module_name = ma.get("module")
|
||||
except Exception:
|
||||
@ -102,9 +111,13 @@ def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
|
||||
# 使用统一的 render_template 进行 Jinja2 条件渲染
|
||||
cond_tpl = str(agent.get("condition") or "").strip()
|
||||
# 统一从触发记录的 pagetype/name 拉取完整记录,构建渲染上下文
|
||||
base_ctx = pg.as_dict() if hasattr(pg, "as_dict") else getattr(pg, "__dict__", {})
|
||||
_pt = base_ctx.get("pagetype") or getattr(pg, "pagetype", None)
|
||||
_nm = base_ctx.get("name") or getattr(pg, "name", None)
|
||||
# 统一基上下文(兼容 dict/object)
|
||||
if isinstance(pg, dict):
|
||||
base_ctx = pg
|
||||
else:
|
||||
base_ctx = pg.as_dict() if hasattr(pg, "as_dict") else getattr(pg, "__dict__", {})
|
||||
_pt = base_ctx.get("pagetype") or _get_pg_field(pg, "pagetype")
|
||||
_nm = base_ctx.get("name") or _get_pg_field(pg, "name")
|
||||
pg_ctx = base_ctx or {}
|
||||
if _pt and _nm:
|
||||
api_res = get_record(str(_pt), str(_nm))
|
||||
@ -118,7 +131,7 @@ def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
|
||||
trigger = False
|
||||
|
||||
if trigger:
|
||||
logger.info(f"Run Local Ai Agent: agent={agent.get('name')}, event={event}, page={pg.pagetype}:{pg.name}")
|
||||
logger.info(f"Run Local Ai Agent: agent={agent.get('name')}, event={event}, page={pg_pagetype}:{pg_name}")
|
||||
enqueue_local_ai_agent(pg, agent.get('name'))
|
||||
else:
|
||||
logger.debug(f"Condition not met, skip agent: agent={agent.get('name')}, event={event}")
|
||||
@ -148,7 +161,10 @@ def enqueue_local_ai_agent(pg, agent_name):
|
||||
from .local_ai_agent import create_agent_job
|
||||
|
||||
# 将触发上下文透传为执行参数的一部分(由下游路由读取)
|
||||
event_inputs = {"pagetype": getattr(pg, 'pagetype', None), "name": getattr(pg, 'name', None)} if (hasattr(pg, 'pagetype') and hasattr(pg, 'name')) else {}
|
||||
if isinstance(pg, dict):
|
||||
event_inputs = {"pagetype": pg.get("pagetype"), "name": pg.get("name")}
|
||||
else:
|
||||
event_inputs = {"pagetype": getattr(pg, 'pagetype', None), "name": getattr(pg, 'name', None)} if (hasattr(pg, 'pagetype') and hasattr(pg, 'name')) else {}
|
||||
|
||||
_ = create_agent_job(
|
||||
agent_id=str(agent_id),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user