@@ -1175,28 +1175,36 @@ def import_graph(self, data: dict[str, Any]) -> None:
11751175 data: A dictionary containing all nodes and edges to be loaded.
11761176 """
11771177 for node in data .get ("nodes" , []):
1178- id , memory , metadata = _compose_node (node )
1178+ try :
1179+ id , memory , metadata = _compose_node (node )
11791180
1180- if not self .config .use_multi_db and self .config .user_name :
1181- metadata ["user_name" ] = self .config .user_name
1181+ if not self .config .use_multi_db and self .config .user_name :
1182+ metadata ["user_name" ] = self .config .user_name
11821183
1183- metadata = self ._prepare_node_metadata (metadata )
1184- metadata .update ({"id" : id , "memory" : memory })
1185- properties = ", " .join (f"{ k } : { self ._format_value (v , k )} " for k , v in metadata .items ())
1186- node_gql = f"INSERT OR IGNORE (n@Memory {{{ properties } }})"
1187- self .execute_query (node_gql )
1184+ metadata = self ._prepare_node_metadata (metadata )
1185+ metadata .update ({"id" : id , "memory" : memory })
1186+ properties = ", " .join (
1187+ f"{ k } : { self ._format_value (v , k )} " for k , v in metadata .items ()
1188+ )
1189+ node_gql = f"INSERT OR IGNORE (n@Memory {{{ properties } }})"
1190+ self .execute_query (node_gql )
1191+ except Exception as e :
1192+ logger .error (f"Fail to load node: { node } , error: { e } " )
11881193
11891194 for edge in data .get ("edges" , []):
1190- source_id , target_id = edge ["source" ], edge ["target" ]
1191- edge_type = edge ["type" ]
1192- props = ""
1193- if not self .config .use_multi_db and self .config .user_name :
1194- props = f'{{user_name: "{ self .config .user_name } "}}'
1195- edge_gql = f'''
1196- MATCH (a@Memory {{id: "{ source_id } "}}), (b@Memory {{id: "{ target_id } "}})
1197- INSERT OR IGNORE (a) -[e@{ edge_type } { props } ]-> (b)
1198- '''
1199- self .execute_query (edge_gql )
1195+ try :
1196+ source_id , target_id = edge ["source" ], edge ["target" ]
1197+ edge_type = edge ["type" ]
1198+ props = ""
1199+ if not self .config .use_multi_db and self .config .user_name :
1200+ props = f'{{user_name: "{ self .config .user_name } "}}'
1201+ edge_gql = f'''
1202+ MATCH (a@Memory {{id: "{ source_id } "}}), (b@Memory {{id: "{ target_id } "}})
1203+ INSERT OR IGNORE (a) -[e@{ edge_type } { props } ]-> (b)
1204+ '''
1205+ self .execute_query (edge_gql )
1206+ except Exception as e :
1207+ logger .error (f"Fail to load edge: { edge } , error: { e } " )
12001208
12011209 @timed
12021210 def get_all_memory_items (self , scope : str , include_embedding : bool = False ) -> (list )[dict ]:
0 commit comments