diff --git a/src/memos/graph_dbs/polardb.py b/src/memos/graph_dbs/polardb.py index ac49228e2..a7245a625 100644 --- a/src/memos/graph_dbs/polardb.py +++ b/src/memos/graph_dbs/polardb.py @@ -859,9 +859,9 @@ def get_node( if result: if include_embedding: - properties_json, embedding_json = result + _, properties_json, embedding_json = result else: - properties_json = result + _, properties_json = result embedding_json = None # Parse properties from JSONB if it's a string @@ -885,12 +885,14 @@ def get_node( properties["embedding"] = embedding except (json.JSONDecodeError, TypeError): logger.warning(f"Failed to parse embedding for node {id}") - + properties.pop("id") + properties.pop("memory") + properties.pop("user_name", None) return self._parse_node( { "id": id, - "memory": json.loads(properties[1]).get("memory", ""), - **json.loads(properties[1]), + "memory": properties.get("memory", ""), + **properties, } ) return None @@ -1290,6 +1292,8 @@ def get_subgraph( user_name = user_name if user_name else self._get_config_value("user_name") + if center_id.startswith('"') and center_id.endswith('"'): + center_id = center_id[1:-1] # Use a simplified query to get the subgraph (temporarily only direct neighbors) """ SELECT * FROM cypher('{self.db_name}_graph', $$