彻底重构状态系统:整合所有旧状态到 MainGraphState,修复所有节点
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 6m35s
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 6m35s
This commit is contained in:
@@ -6,20 +6,12 @@
|
||||
from typing import Any, Dict
|
||||
|
||||
# 本地模块
|
||||
from app.main_graph.state import MessagesState
|
||||
from app.main_graph.state import MainGraphState
|
||||
from app.memory.mem0_client import Mem0Client
|
||||
from app.utils.logging import log_state_change
|
||||
from app.logger import debug
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
def create_retrieve_memory_node(mem0_client: Mem0Client):
|
||||
"""
|
||||
工厂函数:创建记忆检索节点
|
||||
@@ -33,12 +25,12 @@ def create_retrieve_memory_node(mem0_client: Mem0Client):
|
||||
|
||||
from langchain_core.runnables.config import RunnableConfig
|
||||
|
||||
async def retrieve_memory(state, config: RunnableConfig) -> Dict[str, Any]:
|
||||
async def retrieve_memory(state: MainGraphState, config: RunnableConfig) -> Dict[str, Any]:
|
||||
"""
|
||||
记忆检索节点 - 使用 Mem0
|
||||
|
||||
Args:
|
||||
state: 当前对话状态(兼容 dict 和 dataclass)
|
||||
state: 当前对话状态
|
||||
config: 运行时配置
|
||||
|
||||
Returns:
|
||||
@@ -49,16 +41,16 @@ def create_retrieve_memory_node(mem0_client: Mem0Client):
|
||||
# 从 metadata 中获取 user_id
|
||||
user_id = config.get("metadata", {}).get("user_id", "default_user")
|
||||
|
||||
# 兼容 dict 和对象两种消息格式
|
||||
messages = _get_attr(state, "messages", [])
|
||||
# 获取最后一条消息
|
||||
messages = state.messages
|
||||
last_msg = messages[-1] if messages else None
|
||||
query = ""
|
||||
if last_msg:
|
||||
if isinstance(last_msg, dict):
|
||||
query = str(last_msg.get("content", ""))
|
||||
else:
|
||||
query = str(last_msg.content)
|
||||
else:
|
||||
query = ""
|
||||
|
||||
memory_text_parts = []
|
||||
|
||||
# 确保 Mem0 已初始化(懒加载)
|
||||
@@ -83,7 +75,7 @@ def create_retrieve_memory_node(mem0_client: Mem0Client):
|
||||
|
||||
memory_context = "\n\n".join(memory_text_parts) if memory_text_parts else "暂无用户信息"
|
||||
result = {"memory_context": memory_context}
|
||||
log_state_change("retrieve_memory", {**state, **result} if isinstance(state, dict) else state, "离开")
|
||||
log_state_change("retrieve_memory", state, "离开")
|
||||
return result
|
||||
|
||||
return retrieve_memory
|
||||
Reference in New Issue
Block a user