diff --git a/graphiti_core/graphiti.py b/graphiti_core/graphiti.py index 438d31a6..81cf90fc 100644 --- a/graphiti_core/graphiti.py +++ b/graphiti_core/graphiti.py @@ -724,7 +724,7 @@ class Graphiti: if edge.fact_embedding is None: await edge.generate_embedding(self.embedder) - resolved_nodes, _ = await resolve_extracted_nodes( + resolved_nodes, uuid_map = await resolve_extracted_nodes( self.llm_client, [source_node, target_node], [ @@ -733,14 +733,16 @@ class Graphiti: ], ) + updated_edge = resolve_edge_pointers([edge], uuid_map)[0] + related_edges = await get_relevant_edges( self.driver, - [edge], + [updated_edge], source_node_uuid=resolved_nodes[0].uuid, target_node_uuid=resolved_nodes[1].uuid, ) - resolved_edge = await dedupe_extracted_edge(self.llm_client, edge, related_edges) + resolved_edge = await dedupe_extracted_edge(self.llm_client, updated_edge, related_edges) contradicting_edges = await get_edge_contradictions(self.llm_client, edge, related_edges) invalidated_edges = resolve_edge_contradictions(resolved_edge, contradicting_edges) diff --git a/graphiti_core/prompts/summarize_nodes.py b/graphiti_core/prompts/summarize_nodes.py index fc03d828..e00e1bab 100644 --- a/graphiti_core/prompts/summarize_nodes.py +++ b/graphiti_core/prompts/summarize_nodes.py @@ -79,8 +79,8 @@ def summarize_context(context: dict[str, Any]) -> list[Message]: {json.dumps(context['episode_content'], indent=2)} - Given the above MESSAGES and the following ENTITY name, create a summary for the ENTITY. Your summary must only use - information from the provided MESSAGES. Your summary should also only contain information relevant to the + Given the above MESSAGES and the following ENTITY name and ENTITY CONTEXT, create a summary for the ENTITY. Your summary must only use + information from the provided MESSAGES and from the ENTITY CONTEXT. Your summary should also only contain information relevant to the provided ENTITY. Summaries must be under 500 words. @@ -88,6 +88,9 @@ def summarize_context(context: dict[str, Any]) -> list[Message]: {context['node_name']} + + {context['node_summary']} + """, ), ] diff --git a/graphiti_core/utils/maintenance/node_operations.py b/graphiti_core/utils/maintenance/node_operations.py index fe450163..31e916b4 100644 --- a/graphiti_core/utils/maintenance/node_operations.py +++ b/graphiti_core/utils/maintenance/node_operations.py @@ -268,6 +268,7 @@ async def resolve_extracted_node( summary_context = { 'node_name': extracted_node.name, + 'node_summary': extracted_node.summary, 'episode_content': episode.content if episode is not None else '', 'previous_episodes': [ep.content for ep in previous_episodes] if previous_episodes is not None