Skip to content

Commit d6ccfff

Browse files
committed
edge types no regressions
1 parent d68a736 commit d6ccfff

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

graphiti_core/search/search_utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -340,10 +340,10 @@ async def node_fulltext_search(
340340

341341
query = (
342342
"""
343-
CALL db.index.fulltext.queryNodes("node_name_and_summary", $query, {limit: $limit})
344-
YIELD node AS n, score
345-
WHERE n:Entity
346-
"""
343+
CALL db.index.fulltext.queryNodes("node_name_and_summary", $query, {limit: $limit})
344+
YIELD node AS n, score
345+
WHERE n:Entity
346+
"""
347347
+ filter_query
348348
+ ENTITY_NODE_RETURN
349349
+ """
@@ -775,7 +775,7 @@ async def get_relevant_edges(
775775
expired_at: e.expired_at,
776776
valid_at: e.valid_at,
777777
invalid_at: e.invalid_at,
778-
attributes: properties(e),
778+
attributes: properties(e)
779779
})[..$limit] AS matches
780780
"""
781781
)
@@ -842,7 +842,7 @@ async def get_edge_invalidation_candidates(
842842
expired_at: e.expired_at,
843843
valid_at: e.valid_at,
844844
invalid_at: e.invalid_at,
845-
attributes: properties(e),
845+
attributes: properties(e)
846846
})[..$limit] AS matches
847847
"""
848848
)

graphiti_core/utils/bulk_utils.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,34 @@ async def add_nodes_and_edges_bulk_tx(
137137
entity_data['labels'] = list(set(node.labels + ['Entity']))
138138
nodes.append(entity_data)
139139

140+
edges: list[dict[str, Any]] = []
140141
for edge in entity_edges:
141142
if edge.fact_embedding is None:
142143
await edge.generate_embedding(embedder)
144+
edge_data: dict[str, Any] = {
145+
'uuid': edge.uuid,
146+
'source_node_uuid': edge.source_node_uuid,
147+
'target_node_uuid': edge.target_node_uuid,
148+
'name': edge.name,
149+
'fact': edge.fact,
150+
'fact_embedding': edge.fact_embedding,
151+
'group_id': edge.group_id,
152+
'episodes': edge.episodes,
153+
'created_at': edge.created_at,
154+
'expired_at': edge.expired_at,
155+
'valid_at': edge.valid_at,
156+
'invalid_at': edge.invalid_at,
157+
}
158+
159+
edge_data.update(edge.attributes or {})
160+
edges.append(edge_data)
143161

144162
await tx.run(EPISODIC_NODE_SAVE_BULK, episodes=episodes)
145163
await tx.run(ENTITY_NODE_SAVE_BULK, nodes=nodes)
146164
await tx.run(
147165
EPISODIC_EDGE_SAVE_BULK, episodic_edges=[edge.model_dump() for edge in episodic_edges]
148166
)
149-
await tx.run(ENTITY_EDGE_SAVE_BULK, entity_edges=[edge.model_dump() for edge in entity_edges])
167+
await tx.run(ENTITY_EDGE_SAVE_BULK, entity_edges=edges)
150168

151169

152170
async def extract_nodes_and_edges_bulk(

graphiti_core/utils/maintenance/edge_operations.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -284,16 +284,17 @@ async def resolve_extracted_edges(
284284
for target_label in target_node_labels
285285
]
286286

287-
extracted_edge_types = []
287+
extracted_edge_types = {}
288288
for label_tuple in label_tuples:
289-
extracted_edge_types.extend(edge_type_map.get(label_tuple, []))
289+
type_names = edge_type_map.get(label_tuple, [])
290+
for type_name in type_names:
291+
type_model = edge_types.get(type_name)
292+
if type_model is None:
293+
continue
290294

291-
for type_name in extracted_edge_types:
292-
type_model = edge_types.get(type_name)
293-
if type_model is None:
294-
continue
295+
extracted_edge_types[type_name] = type_model
295296

296-
edge_types_lst.append({type_name: type_model})
297+
edge_types_lst.append(extracted_edge_types)
297298

298299
# resolve edges with related edges in the graph and find invalidation candidates
299300
results: list[tuple[EntityEdge, list[EntityEdge]]] = list(

0 commit comments

Comments
 (0)