From c19f9d09d38e6ab8204517436d2277242b2fa789 Mon Sep 17 00:00:00 2001 From: Preston Rasmussen <109292228+prasmussen15@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:37:23 -0400 Subject: [PATCH] add get_by_entity_node_uuid (#357) * add get_by_entity_node_uuid * Update graphiti_core/nodes.py Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- graphiti_core/nodes.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/graphiti_core/nodes.py b/graphiti_core/nodes.py index f4f50a0c..4313c4c2 100644 --- a/graphiti_core/nodes.py +++ b/graphiti_core/nodes.py @@ -251,6 +251,31 @@ class EpisodicNode(Node): return episodes + @classmethod + async def get_by_entity_node_uuid(cls, driver: AsyncDriver, entity_node_uuid: str): + records, _, _ = await driver.execute_query( + """ + MATCH (e:Episodic)-[r:MENTIONS]->(n:Entity {uuid: $entity_node_uuid}) + RETURN DISTINCT + e.content AS content, + e.created_at AS created_at, + e.valid_at AS valid_at, + e.uuid AS uuid, + e.name AS name, + e.group_id AS group_id, + e.source_description AS source_description, + e.source AS source, + e.entity_edges AS entity_edges + """, + entity_node_uuid=entity_node_uuid, + database_=DEFAULT_DATABASE, + routing_='r', + ) + + episodes = [get_episodic_node_from_record(record) for record in records] + + return episodes + class EntityNode(Node): name_embedding: list[float] | None = Field(default=None, description='embedding of the name')