graphiti-core 0.11.6rc1__tar.gz → 0.11.6rc3__tar.gz

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.

Files changed (66) hide show
  1. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/PKG-INFO +1 -1
  2. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/graphiti.py +2 -2
  3. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/bulk_utils.py +15 -1
  4. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/edge_operations.py +5 -0
  5. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/pyproject.toml +1 -1
  6. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/LICENSE +0 -0
  7. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/README.md +0 -0
  8. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/__init__.py +0 -0
  9. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/cross_encoder/__init__.py +0 -0
  10. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/cross_encoder/bge_reranker_client.py +0 -0
  11. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/cross_encoder/client.py +0 -0
  12. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/cross_encoder/openai_reranker_client.py +0 -0
  13. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/edges.py +0 -0
  14. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/embedder/__init__.py +0 -0
  15. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/embedder/client.py +0 -0
  16. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/embedder/gemini.py +0 -0
  17. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/embedder/openai.py +0 -0
  18. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/embedder/voyage.py +0 -0
  19. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/errors.py +0 -0
  20. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/graphiti_types.py +0 -0
  21. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/helpers.py +0 -0
  22. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/__init__.py +0 -0
  23. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/anthropic_client.py +0 -0
  24. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/client.py +0 -0
  25. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/config.py +0 -0
  26. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/errors.py +0 -0
  27. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/gemini_client.py +0 -0
  28. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/groq_client.py +0 -0
  29. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/openai_client.py +0 -0
  30. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/openai_generic_client.py +0 -0
  31. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/llm_client/utils.py +0 -0
  32. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/models/__init__.py +0 -0
  33. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/models/edges/__init__.py +0 -0
  34. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/models/edges/edge_db_queries.py +0 -0
  35. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/models/nodes/__init__.py +0 -0
  36. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/models/nodes/node_db_queries.py +0 -0
  37. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/nodes.py +0 -0
  38. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/__init__.py +0 -0
  39. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/dedupe_edges.py +0 -0
  40. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/dedupe_nodes.py +0 -0
  41. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/eval.py +0 -0
  42. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/extract_edge_dates.py +0 -0
  43. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/extract_edges.py +0 -0
  44. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/extract_nodes.py +0 -0
  45. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/invalidate_edges.py +0 -0
  46. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/lib.py +0 -0
  47. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/models.py +0 -0
  48. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/prompt_helpers.py +0 -0
  49. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/prompts/summarize_nodes.py +0 -0
  50. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/py.typed +0 -0
  51. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/__init__.py +0 -0
  52. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search.py +0 -0
  53. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search_config.py +0 -0
  54. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search_config_recipes.py +0 -0
  55. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search_filters.py +0 -0
  56. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search_helpers.py +0 -0
  57. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/search/search_utils.py +0 -0
  58. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/__init__.py +0 -0
  59. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/datetime_utils.py +0 -0
  60. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/__init__.py +0 -0
  61. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/community_operations.py +0 -0
  62. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/graph_data_operations.py +0 -0
  63. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/node_operations.py +0 -0
  64. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/temporal_operations.py +0 -0
  65. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/maintenance/utils.py +0 -0
  66. {graphiti_core-0.11.6rc1 → graphiti_core-0.11.6rc3}/graphiti_core/utils/ontology_utils/entity_types_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: graphiti-core
3
- Version: 0.11.6rc1
3
+ Version: 0.11.6rc3
4
4
  Summary: A temporal graph building library
5
5
  License: Apache-2.0
6
6
  Author: Paul Paliychuk
@@ -397,7 +397,7 @@ class Graphiti:
397
397
  episode.content = ''
398
398
 
399
399
  await add_nodes_and_edges_bulk(
400
- self.driver, [episode], episodic_edges, hydrated_nodes, entity_edges
400
+ self.driver, [episode], episodic_edges, hydrated_nodes, entity_edges, self.embedder
401
401
  )
402
402
 
403
403
  # Update any communities
@@ -693,7 +693,7 @@ class Graphiti:
693
693
  invalidated_edges = resolve_edge_contradictions(resolved_edge, contradicting_edges)
694
694
 
695
695
  await add_nodes_and_edges_bulk(
696
- self.driver, [], [], resolved_nodes, [resolved_edge] + invalidated_edges
696
+ self.driver, [], [], resolved_nodes, [resolved_edge] + invalidated_edges, self.embedder
697
697
  )
698
698
 
699
699
  async def remove_episode(self, episode_uuid: str):
@@ -26,6 +26,7 @@ from pydantic import BaseModel
26
26
  from typing_extensions import Any
27
27
 
28
28
  from graphiti_core.edges import Edge, EntityEdge, EpisodicEdge
29
+ from graphiti_core.embedder import EmbedderClient
29
30
  from graphiti_core.graphiti_types import GraphitiClients
30
31
  from graphiti_core.helpers import DEFAULT_DATABASE, semaphore_gather
31
32
  from graphiti_core.llm_client import LLMClient
@@ -95,10 +96,16 @@ async def add_nodes_and_edges_bulk(
95
96
  episodic_edges: list[EpisodicEdge],
96
97
  entity_nodes: list[EntityNode],
97
98
  entity_edges: list[EntityEdge],
99
+ embedder: EmbedderClient,
98
100
  ):
99
101
  async with driver.session(database=DEFAULT_DATABASE) as session:
100
102
  await session.execute_write(
101
- add_nodes_and_edges_bulk_tx, episodic_nodes, episodic_edges, entity_nodes, entity_edges
103
+ add_nodes_and_edges_bulk_tx,
104
+ episodic_nodes,
105
+ episodic_edges,
106
+ entity_nodes,
107
+ entity_edges,
108
+ embedder,
102
109
  )
103
110
 
104
111
 
@@ -108,12 +115,15 @@ async def add_nodes_and_edges_bulk_tx(
108
115
  episodic_edges: list[EpisodicEdge],
109
116
  entity_nodes: list[EntityNode],
110
117
  entity_edges: list[EntityEdge],
118
+ embedder: EmbedderClient,
111
119
  ):
112
120
  episodes = [dict(episode) for episode in episodic_nodes]
113
121
  for episode in episodes:
114
122
  episode['source'] = str(episode['source'].value)
115
123
  nodes: list[dict[str, Any]] = []
116
124
  for node in entity_nodes:
125
+ if node.name_embedding is None:
126
+ await node.generate_name_embedding(embedder)
117
127
  entity_data: dict[str, Any] = {
118
128
  'uuid': node.uuid,
119
129
  'name': node.name,
@@ -127,6 +137,10 @@ async def add_nodes_and_edges_bulk_tx(
127
137
  entity_data['labels'] = list(set(node.labels + ['Entity']))
128
138
  nodes.append(entity_data)
129
139
 
140
+ for edge in entity_edges:
141
+ if edge.fact_embedding is None:
142
+ await edge.generate_name_fact(embedder)
143
+
130
144
  await tx.run(EPISODIC_NODE_SAVE_BULK, episodes=episodes)
131
145
  await tx.run(ENTITY_NODE_SAVE_BULK, nodes=nodes)
132
146
  await tx.run(
@@ -279,6 +279,11 @@ async def resolve_extracted_edges(
279
279
 
280
280
  logger.debug(f'Resolved edges: {[(e.name, e.uuid) for e in resolved_edges]}')
281
281
 
282
+ await semaphore_gather(
283
+ create_entity_edge_embeddings(embedder, extracted_edges),
284
+ create_entity_edge_embeddings(embedder, invalidated_edges),
285
+ )
286
+
282
287
  return resolved_edges, invalidated_edges
283
288
 
284
289
 
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "graphiti-core"
3
3
  description = "A temporal graph building library"
4
- version = "0.11.6pre1"
4
+ version = "0.11.6pre3"
5
5
  authors = [
6
6
  { "name" = "Paul Paliychuk", "email" = "paul@getzep.com" },
7
7
  { "name" = "Preston Rasmussen", "email" = "preston@getzep.com" },