fix(graph_store): 修复边类型处理逻辑,确保使用 EdgeType 枚举并移除重复注销记忆边的调用
This commit is contained in:
@@ -9,7 +9,7 @@ from collections.abc import Iterable
|
|||||||
import networkx as nx
|
import networkx as nx
|
||||||
|
|
||||||
from src.common.logger import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.memory_graph.models import Memory, MemoryEdge
|
from src.memory_graph.models import EdgeType, Memory, MemoryEdge
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
@@ -159,9 +159,6 @@ class GraphStore:
|
|||||||
# 1.5. 注销记忆中的边的邻接索引记录
|
# 1.5. 注销记忆中的边的邻接索引记录
|
||||||
self._unregister_memory_edges(memory)
|
self._unregister_memory_edges(memory)
|
||||||
|
|
||||||
# 1.5. 注销记忆中的边的邻接索引记录
|
|
||||||
self._unregister_memory_edges(memory)
|
|
||||||
|
|
||||||
# 2. 添加节点到图
|
# 2. 添加节点到图
|
||||||
if not self.graph.has_node(node_id):
|
if not self.graph.has_node(node_id):
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@@ -201,6 +198,9 @@ class GraphStore:
|
|||||||
)
|
)
|
||||||
memory.nodes.append(new_node)
|
memory.nodes.append(new_node)
|
||||||
|
|
||||||
|
# 5. 重新注册记忆中的边到邻接索引
|
||||||
|
self._register_memory_edges(memory)
|
||||||
|
|
||||||
logger.debug(f"添加节点成功: {node_id} -> {memory_id}")
|
logger.debug(f"添加节点成功: {node_id} -> {memory_id}")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -926,12 +926,23 @@ class GraphStore:
|
|||||||
mem_edge = MemoryEdge.from_dict(edge_dict)
|
mem_edge = MemoryEdge.from_dict(edge_dict)
|
||||||
except Exception:
|
except Exception:
|
||||||
# 兼容性:直接构造对象
|
# 兼容性:直接构造对象
|
||||||
|
# 确保 edge_type 是 EdgeType 枚举
|
||||||
|
edge_type_value = edge_dict["edge_type"]
|
||||||
|
if isinstance(edge_type_value, str):
|
||||||
|
try:
|
||||||
|
edge_type_enum = EdgeType(edge_type_value)
|
||||||
|
except ValueError:
|
||||||
|
logger.warning(f"未知的边类型: {edge_type_value}, 使用默认值")
|
||||||
|
edge_type_enum = EdgeType.RELATION
|
||||||
|
else:
|
||||||
|
edge_type_enum = edge_type_value
|
||||||
|
|
||||||
mem_edge = MemoryEdge(
|
mem_edge = MemoryEdge(
|
||||||
id=edge_dict["id"] or "",
|
id=edge_dict["id"] or "",
|
||||||
source_id=edge_dict["source_id"],
|
source_id=edge_dict["source_id"],
|
||||||
target_id=edge_dict["target_id"],
|
target_id=edge_dict["target_id"],
|
||||||
relation=edge_dict["relation"],
|
relation=edge_dict["relation"],
|
||||||
edge_type=edge_dict["edge_type"],
|
edge_type=edge_type_enum,
|
||||||
importance=edge_dict.get("importance", 0.5),
|
importance=edge_dict.get("importance", 0.5),
|
||||||
metadata=edge_dict.get("metadata", {}),
|
metadata=edge_dict.get("metadata", {}),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user