修复状态兼容性问题:让旧节点同时支持 dict 和 dataclass
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 6m39s
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 6m39s
This commit is contained in:
@@ -4,19 +4,30 @@ from app.main_graph.state import MessagesState
|
||||
from app.memory.mem0_client import Mem0Client
|
||||
from app.logger import info
|
||||
|
||||
|
||||
def _get_attr(state, attr_name, default=None):
|
||||
"""通用方法:兼容 dict 和 dataclass 两种状态格式"""
|
||||
if isinstance(state, dict):
|
||||
return state.get(attr_name, default)
|
||||
else:
|
||||
return getattr(state, attr_name, default)
|
||||
|
||||
|
||||
# 全局变量,在 GraphBuilder 中注入
|
||||
_mem0_client: Mem0Client = None
|
||||
|
||||
|
||||
def set_mem0_client(client: Mem0Client):
|
||||
global _mem0_client
|
||||
_mem0_client = client
|
||||
|
||||
async def memory_trigger_node(state: MessagesState, config: RunnableConfig) -> Dict[str, Any]:
|
||||
|
||||
async def memory_trigger_node(state, config: RunnableConfig) -> Dict[str, Any]:
|
||||
"""检测用户消息中的记忆指令,若命中则主动调用 Mem0 存储"""
|
||||
if _mem0_client is None:
|
||||
return {}
|
||||
|
||||
messages = state.get("messages", [])
|
||||
messages = _get_attr(state, "messages", [])
|
||||
if not messages:
|
||||
return {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user