From bec3f0203625cd2c1ba2f5683b56afe2d129f47d Mon Sep 17 00:00:00 2001 From: Preston Rasmussen <109292228+prasmussen15@users.noreply.github.com> Date: Thu, 2 Oct 2025 15:26:51 -0400 Subject: [PATCH] filter out falsey values before creating embeddings (#966) * filter out falsey values * update * early return --- graphiti_core/edges.py | 9 ++++++--- graphiti_core/nodes.py | 9 ++++++--- pyproject.toml | 2 +- uv.lock | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/graphiti_core/edges.py b/graphiti_core/edges.py index 165dee53..88d2a472 100644 --- a/graphiti_core/edges.py +++ b/graphiti_core/edges.py @@ -644,8 +644,11 @@ def get_community_edge_from_record(record: Any): async def create_entity_edge_embeddings(embedder: EmbedderClient, edges: list[EntityEdge]): - if len(edges) == 0: + # filter out falsey values from edges + filtered_edges = [edge for edge in edges if edge.fact] + + if len(filtered_edges) == 0: return - fact_embeddings = await embedder.create_batch([edge.fact for edge in edges]) - for edge, fact_embedding in zip(edges, fact_embeddings, strict=True): + fact_embeddings = await embedder.create_batch([edge.fact for edge in filtered_edges]) + for edge, fact_embedding in zip(filtered_edges, fact_embeddings, strict=True): edge.fact_embedding = fact_embedding diff --git a/graphiti_core/nodes.py b/graphiti_core/nodes.py index 7fafbe4f..4105c88e 100644 --- a/graphiti_core/nodes.py +++ b/graphiti_core/nodes.py @@ -868,9 +868,12 @@ def get_community_node_from_record(record: Any) -> CommunityNode: async def create_entity_node_embeddings(embedder: EmbedderClient, nodes: list[EntityNode]): - if not nodes: # Handle empty list case + # filter out falsey values from nodes + filtered_nodes = [node for node in nodes if node.name] + + if not filtered_nodes: return - name_embeddings = await embedder.create_batch([node.name for node in nodes]) - for node, name_embedding in zip(nodes, name_embeddings, strict=True): + name_embeddings = await embedder.create_batch([node.name for node in filtered_nodes]) + for node, name_embedding in zip(filtered_nodes, name_embeddings, strict=True): node.name_embedding = name_embedding diff --git a/pyproject.toml b/pyproject.toml index 5dacc78c..939eb0ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "graphiti-core" description = "A temporal graph building library" -version = "0.21.0pre10" +version = "0.21.0pre11" authors = [ { name = "Paul Paliychuk", email = "paul@getzep.com" }, { name = "Preston Rasmussen", email = "preston@getzep.com" }, diff --git a/uv.lock b/uv.lock index a67aa561..7f362eec 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.10, <4" resolution-markers = [ "python_full_version >= '3.14'", @@ -783,7 +783,7 @@ wheels = [ [[package]] name = "graphiti-core" -version = "0.21.0rc8" +version = "0.21.0rc11" source = { editable = "." } dependencies = [ { name = "diskcache" },