@@ -1178,6 +1178,8 @@ def get_subgraph(
11781178 MATCH(center: Memory)-[r * 1..{ depth } ]->(neighbor:Memory)
11791179 WHERE
11801180 center.id = '{ center_id } '
1181+ AND center.status = '{ center_status } '
1182+ AND center.user_name = '{ user_name } '
11811183 RETURN
11821184 collect(DISTINCT
11831185 center), collect(DISTINCT
@@ -1255,7 +1257,9 @@ def get_subgraph(
12551257 }
12561258 )
12571259
1258- return {"core_node" : core_node , "neighbors" : neighbors , "edges" : edges }
1260+ return self ._convert_graph_edges (
1261+ {"core_node" : core_node , "neighbors" : neighbors , "edges" : edges }
1262+ )
12591263
12601264 except Exception as e :
12611265 logger .error (f"Failed to get subgraph: { e } " , exc_info = True )
@@ -2839,3 +2843,25 @@ def get_edges(
28392843 except Exception as e :
28402844 logger .error (f"Failed to get edges: { e } " , exc_info = True )
28412845 return []
2846+
2847+ def _convert_graph_edges (self , core_node : dict ) -> dict :
2848+ import copy
2849+
2850+ data = copy .deepcopy (core_node )
2851+ id_map = {}
2852+ core_node = data .get ("core_node" , {})
2853+ core_meta = core_node .get ("metadata" , {})
2854+ if "graph_id" in core_meta and "id" in core_node :
2855+ id_map [core_meta ["graph_id" ]] = core_node ["id" ]
2856+ for neighbor in data .get ("neighbors" , []):
2857+ n_meta = neighbor .get ("metadata" , {})
2858+ if "graph_id" in n_meta and "id" in neighbor :
2859+ id_map [n_meta ["graph_id" ]] = neighbor ["id" ]
2860+ for edge in data .get ("edges" , []):
2861+ src = edge .get ("source" )
2862+ tgt = edge .get ("target" )
2863+ if src in id_map :
2864+ edge ["source" ] = id_map [src ]
2865+ if tgt in id_map :
2866+ edge ["target" ] = id_map [tgt ]
2867+ return data
0 commit comments