Skip to content

Commit 48e7b3d

Browse files
committed
feat: skip failed uploading
1 parent ab7213b commit 48e7b3d

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

src/memos/graph_dbs/nebular.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)