graphiti-core 0.21.0rc9__py3-none-any.whl → 0.21.0rc10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of graphiti-core might be problematic. Click here for more details.

@@ -151,7 +151,7 @@ For each entity extracted, also determine its entity type based on the provided
151
151
  Indicate the classified entity type by providing its entity_type_id.
152
152
 
153
153
  Guidelines:
154
- 1. Always try to extract an entities that the JSON represents. This will often be something like a "name" or "user field
154
+ 1. Extract all entities that the JSON represents. This will often be something like a "name" or "user" field
155
155
  2. Extract all entities mentioned in all other properties throughout the JSON structure
156
156
  3. Do NOT extract any properties that contain dates
157
157
  """
@@ -15,6 +15,7 @@ limitations under the License.
15
15
  """
16
16
 
17
17
  import logging
18
+ from collections.abc import Awaitable, Callable
18
19
  from time import time
19
20
  from typing import Any
20
21
 
@@ -55,6 +56,8 @@ from graphiti_core.utils.maintenance.edge_operations import (
55
56
 
56
57
  logger = logging.getLogger(__name__)
57
58
 
59
+ NodeSummaryFilter = Callable[[EntityNode], Awaitable[bool]]
60
+
58
61
 
59
62
  async def extract_nodes_reflexion(
60
63
  llm_client: LLMClient,
@@ -402,6 +405,7 @@ async def extract_attributes_from_nodes(
402
405
  episode: EpisodicNode | None = None,
403
406
  previous_episodes: list[EpisodicNode] | None = None,
404
407
  entity_types: dict[str, type[BaseModel]] | None = None,
408
+ should_summarize_node: NodeSummaryFilter | None = None,
405
409
  ) -> list[EntityNode]:
406
410
  llm_client = clients.llm_client
407
411
  embedder = clients.embedder
@@ -418,6 +422,7 @@ async def extract_attributes_from_nodes(
418
422
  else None
419
423
  ),
420
424
  clients.ensure_ascii,
425
+ should_summarize_node,
421
426
  )
422
427
  for node in nodes
423
428
  ]
@@ -435,6 +440,7 @@ async def extract_attributes_from_node(
435
440
  previous_episodes: list[EpisodicNode] | None = None,
436
441
  entity_type: type[BaseModel] | None = None,
437
442
  ensure_ascii: bool = False,
443
+ should_summarize_node: NodeSummaryFilter | None = None,
438
444
  ) -> EntityNode:
439
445
  node_context: dict[str, Any] = {
440
446
  'name': node.name,
@@ -477,16 +483,22 @@ async def extract_attributes_from_node(
477
483
  else {}
478
484
  )
479
485
 
480
- summary_response = await llm_client.generate_response(
481
- prompt_library.extract_nodes.extract_summary(summary_context),
482
- response_model=EntitySummary,
483
- model_size=ModelSize.small,
484
- )
486
+ # Determine if summary should be generated
487
+ generate_summary = True
488
+ if should_summarize_node is not None:
489
+ generate_summary = await should_summarize_node(node)
490
+
491
+ # Conditionally generate summary
492
+ if generate_summary:
493
+ summary_response = await llm_client.generate_response(
494
+ prompt_library.extract_nodes.extract_summary(summary_context),
495
+ response_model=EntitySummary,
496
+ model_size=ModelSize.small,
497
+ )
498
+ node.summary = summary_response.get('summary', '')
485
499
 
486
500
  if has_entity_attributes and entity_type is not None:
487
501
  entity_type(**llm_response)
488
-
489
- node.summary = summary_response.get('summary', '')
490
502
  node_attributes = {key: value for key, value in llm_response.items()}
491
503
 
492
504
  node.attributes.update(node_attributes)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graphiti-core
3
- Version: 0.21.0rc9
3
+ Version: 0.21.0rc10
4
4
  Summary: A temporal graph building library
5
5
  Project-URL: Homepage, https://help.getzep.com/graphiti/graphiti/overview
6
6
  Project-URL: Repository, https://github.com/getzep/graphiti
@@ -48,7 +48,7 @@ graphiti_core/prompts/dedupe_nodes.py,sha256=H4sIzpi1gBwPedTMhdY175jnLj5JtnEeb_W
48
48
  graphiti_core/prompts/eval.py,sha256=ijwxbE87G678imdhfPvRujepQMq_JZ3XHX4vOAcVnVI,5507
49
49
  graphiti_core/prompts/extract_edge_dates.py,sha256=3Drs3CmvP0gJN5BidWSxrNvLet3HPoTybU3BUIAoc0Y,4218
50
50
  graphiti_core/prompts/extract_edges.py,sha256=S115_KnenGJLjmVMzdarXBRj2wJ6y553UfYJgUTTDZI,6920
51
- graphiti_core/prompts/extract_nodes.py,sha256=GYX97qlSSrR_3QLc48EGCti8tdC1_OKpEdAR0Y2wfVY,11629
51
+ graphiti_core/prompts/extract_nodes.py,sha256=Ksf3PRBZ8LoZ5bOStZVRlHvVrdh3rT3xsepL81Ewy3M,11617
52
52
  graphiti_core/prompts/invalidate_edges.py,sha256=yfpcs_pyctnoM77ULPZXEtKW0oHr1MeLsJzC5yrE-o4,3547
53
53
  graphiti_core/prompts/lib.py,sha256=DCyHePM4_q-CptTpEXGO_dBv9k7xDtclEaB1dGu7EcI,4092
54
54
  graphiti_core/prompts/models.py,sha256=NgxdbPHJpBEcpbXovKyScgpBc73Q-GIW-CBDlBtDjto,894
@@ -71,11 +71,11 @@ graphiti_core/utils/maintenance/community_operations.py,sha256=XMiokEemn96GlvjkO
71
71
  graphiti_core/utils/maintenance/dedup_helpers.py,sha256=B7k6KkB6Sii8PZCWNNTvsNiy4BNTNWpoLeGgrPLq6BE,9220
72
72
  graphiti_core/utils/maintenance/edge_operations.py,sha256=p16cLA2eJeIYS9W0o1i8wYtvUpjt9mGWzRXVemAr7Bk,25305
73
73
  graphiti_core/utils/maintenance/graph_data_operations.py,sha256=42icj3S_ELAJ-NK3jVS_rg_243dmnaZOyUitJj_uJ-M,6085
74
- graphiti_core/utils/maintenance/node_operations.py,sha256=TKpXPtnTVxxan8I1xQyVkGn3zyRdb_Q00cgUpLcloig,16860
74
+ graphiti_core/utils/maintenance/node_operations.py,sha256=lKci3b9cC7agWReI_JfAo_hrFk006I7lEO-_J9ceMD8,17392
75
75
  graphiti_core/utils/maintenance/temporal_operations.py,sha256=IIaVtShpVkOYe6haxz3a1x3v54-MzaEXG8VsxFUNeoY,3582
76
76
  graphiti_core/utils/maintenance/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  graphiti_core/utils/ontology_utils/entity_types_utils.py,sha256=4eVgxLWY6Q8k9cRJ5pW59IYF--U4nXZsZIGOVb_yHfQ,1285
78
- graphiti_core-0.21.0rc9.dist-info/METADATA,sha256=K8BMq3mCQ5o9NUY3M1ZImcnwLykmMAjYcvJMvp5MN6k,27084
79
- graphiti_core-0.21.0rc9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
80
- graphiti_core-0.21.0rc9.dist-info/licenses/LICENSE,sha256=KCUwCyDXuVEgmDWkozHyniRyWjnWUWjkuDHfU6o3JlA,11325
81
- graphiti_core-0.21.0rc9.dist-info/RECORD,,
78
+ graphiti_core-0.21.0rc10.dist-info/METADATA,sha256=7HH5nyTF5howUnxmmHT6hQFJhg26uuB6XoHBHUZrJVM,27085
79
+ graphiti_core-0.21.0rc10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
80
+ graphiti_core-0.21.0rc10.dist-info/licenses/LICENSE,sha256=KCUwCyDXuVEgmDWkozHyniRyWjnWUWjkuDHfU6o3JlA,11325
81
+ graphiti_core-0.21.0rc10.dist-info/RECORD,,