graphiti-core 0.18.2__tar.gz → 0.18.4__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 (182) hide show
  1. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/PKG-INFO +3 -3
  2. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/README.md +2 -2
  3. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/podcast_runner.py +8 -2
  4. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graph_queries.py +1 -0
  5. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graphiti.py +20 -6
  6. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/nodes.py +13 -8
  7. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_filters.py +1 -1
  8. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/pyproject.toml +1 -1
  9. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/signatures/version1/cla.json +24 -0
  10. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_graphiti_int.py +1 -1
  11. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/uv.lock +1 -1
  12. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.env.example +0 -0
  13. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  14. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/dependabot.yml +0 -0
  15. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/pull_request_template.md +0 -0
  16. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/secret_scanning.yml +0 -0
  17. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/cla.yml +0 -0
  18. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/claude-code-review.yml +0 -0
  19. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/claude.yml +0 -0
  20. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/codeql.yml +0 -0
  21. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/lint.yml +0 -0
  22. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/mcp-server-docker.yml +0 -0
  23. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/release-graphiti-core.yml +0 -0
  24. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/typecheck.yml +0 -0
  25. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/unit_tests.yml +0 -0
  26. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.gitignore +0 -0
  27. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CLAUDE.md +0 -0
  28. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CODE_OF_CONDUCT.md +0 -0
  29. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CONTRIBUTING.md +0 -0
  30. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Dockerfile +0 -0
  31. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/LICENSE +0 -0
  32. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Makefile +0 -0
  33. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/SECURITY.md +0 -0
  34. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Zep-CLA.md +0 -0
  35. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/conftest.py +0 -0
  36. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/depot.json +0 -0
  37. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/docker-compose.test.yml +0 -0
  38. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/docker-compose.yml +0 -0
  39. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/ellipsis.yaml +0 -0
  40. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/data/manybirds_products.json +0 -0
  41. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/ecommerce/runner.ipynb +0 -0
  42. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/ecommerce/runner.py +0 -0
  43. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/langgraph-agent/agent.ipynb +0 -0
  44. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/langgraph-agent/tinybirds-jess.png +0 -0
  45. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/podcast_transcript.txt +0 -0
  46. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/transcript_parser.py +0 -0
  47. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/README.md +0 -0
  48. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/quickstart_falkordb.py +0 -0
  49. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/quickstart_neo4j.py +0 -0
  50. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/requirements.txt +0 -0
  51. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/parser.py +0 -0
  52. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/runner.py +0 -0
  53. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/woo.txt +0 -0
  54. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/__init__.py +0 -0
  55. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/__init__.py +0 -0
  56. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/bge_reranker_client.py +0 -0
  57. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/client.py +0 -0
  58. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/gemini_reranker_client.py +0 -0
  59. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/openai_reranker_client.py +0 -0
  60. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/__init__.py +0 -0
  61. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/driver.py +0 -0
  62. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/falkordb_driver.py +0 -0
  63. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/neo4j_driver.py +0 -0
  64. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/edges.py +0 -0
  65. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/__init__.py +0 -0
  66. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/azure_openai.py +0 -0
  67. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/client.py +0 -0
  68. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/gemini.py +0 -0
  69. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/openai.py +0 -0
  70. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/voyage.py +0 -0
  71. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/errors.py +0 -0
  72. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graphiti_types.py +0 -0
  73. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/helpers.py +0 -0
  74. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/__init__.py +0 -0
  75. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/anthropic_client.py +0 -0
  76. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/azure_openai_client.py +0 -0
  77. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/client.py +0 -0
  78. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/config.py +0 -0
  79. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/errors.py +0 -0
  80. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/gemini_client.py +0 -0
  81. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/groq_client.py +0 -0
  82. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_base_client.py +0 -0
  83. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_client.py +0 -0
  84. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_generic_client.py +0 -0
  85. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/utils.py +0 -0
  86. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/__init__.py +0 -0
  87. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/edges/__init__.py +0 -0
  88. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/edges/edge_db_queries.py +0 -0
  89. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/nodes/__init__.py +0 -0
  90. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/nodes/node_db_queries.py +0 -0
  91. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/__init__.py +0 -0
  92. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/dedupe_edges.py +0 -0
  93. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/dedupe_nodes.py +0 -0
  94. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/eval.py +0 -0
  95. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_edge_dates.py +0 -0
  96. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_edges.py +0 -0
  97. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_nodes.py +0 -0
  98. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/invalidate_edges.py +0 -0
  99. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/lib.py +0 -0
  100. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/models.py +0 -0
  101. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/prompt_helpers.py +0 -0
  102. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/summarize_nodes.py +0 -0
  103. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/py.typed +0 -0
  104. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/__init__.py +0 -0
  105. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search.py +0 -0
  106. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_config.py +0 -0
  107. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_config_recipes.py +0 -0
  108. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_helpers.py +0 -0
  109. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_utils.py +0 -0
  110. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/telemetry/__init__.py +0 -0
  111. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/telemetry/telemetry.py +0 -0
  112. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/__init__.py +0 -0
  113. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/bulk_utils.py +0 -0
  114. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/datetime_utils.py +0 -0
  115. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/__init__.py +0 -0
  116. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/community_operations.py +0 -0
  117. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/edge_operations.py +0 -0
  118. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/graph_data_operations.py +0 -0
  119. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/node_operations.py +0 -0
  120. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/temporal_operations.py +0 -0
  121. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/utils.py +0 -0
  122. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/ontology_utils/entity_types_utils.py +0 -0
  123. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/arxiv-screenshot.png +0 -0
  124. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/graphiti-graph-intro.gif +0 -0
  125. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/graphiti-intro-slides-stock-2.gif +0 -0
  126. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/simple_graph.svg +0 -0
  127. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/.env.example +0 -0
  128. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/.python-version +0 -0
  129. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/Dockerfile +0 -0
  130. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/README.md +0 -0
  131. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/cursor_rules.md +0 -0
  132. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/docker-compose.yml +0 -0
  133. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/graphiti_mcp_server.py +0 -0
  134. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/mcp_config_sse_example.json +0 -0
  135. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/mcp_config_stdio_example.json +0 -0
  136. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/pyproject.toml +0 -0
  137. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/uv.lock +0 -0
  138. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/poetry.lock +0 -0
  139. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/py.typed +0 -0
  140. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/pytest.ini +0 -0
  141. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/.env.example +0 -0
  142. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/Makefile +0 -0
  143. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/README.md +0 -0
  144. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/__init__.py +0 -0
  145. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/config.py +0 -0
  146. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/__init__.py +0 -0
  147. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/common.py +0 -0
  148. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/ingest.py +0 -0
  149. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/retrieve.py +0 -0
  150. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/main.py +0 -0
  151. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/__init__.py +0 -0
  152. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/ingest.py +0 -0
  153. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/retrieve.py +0 -0
  154. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/zep_graphiti.py +0 -0
  155. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/pyproject.toml +0 -0
  156. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/uv.lock +0 -0
  157. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_bge_reranker_client.py +0 -0
  158. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_gemini_reranker_client.py +0 -0
  159. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/driver/__init__.py +0 -0
  160. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/driver/test_falkordb_driver.py +0 -0
  161. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/embedder_fixtures.py +0 -0
  162. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_gemini.py +0 -0
  163. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_openai.py +0 -0
  164. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_voyage.py +0 -0
  165. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/data/longmemeval_data/README.md +0 -0
  166. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/data/longmemeval_data/longmemeval_oracle.json +0 -0
  167. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/eval_cli.py +0 -0
  168. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/eval_e2e_graph_building.py +0 -0
  169. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/pytest.ini +0 -0
  170. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/utils.py +0 -0
  171. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/helpers_test.py +0 -0
  172. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_anthropic_client.py +0 -0
  173. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_anthropic_client_int.py +0 -0
  174. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_client.py +0 -0
  175. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_errors.py +0 -0
  176. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_gemini_client.py +0 -0
  177. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_edge_int.py +0 -0
  178. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_entity_exclusion_int.py +0 -0
  179. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_node_int.py +0 -0
  180. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/maintenance/test_edge_operations.py +0 -0
  181. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/maintenance/test_temporal_operations_int.py +0 -0
  182. {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/search/search_utils_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graphiti-core
3
- Version: 0.18.2
3
+ Version: 0.18.4
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
@@ -369,7 +369,7 @@ graphiti = Graphiti(
369
369
  "neo4j",
370
370
  "password",
371
371
  llm_client=OpenAIClient(
372
- llm_config=azure_llm_config,
372
+ config=azure_llm_config,
373
373
  client=llm_client_azure
374
374
  ),
375
375
  embedder=OpenAIEmbedder(
@@ -379,7 +379,7 @@ graphiti = Graphiti(
379
379
  client=embedding_client_azure
380
380
  ),
381
381
  cross_encoder=OpenAIRerankerClient(
382
- llm_config=LLMConfig(
382
+ config=LLMConfig(
383
383
  model=azure_llm_config.small_model # Use small model for reranking
384
384
  ),
385
385
  client=llm_client_azure
@@ -317,7 +317,7 @@ graphiti = Graphiti(
317
317
  "neo4j",
318
318
  "password",
319
319
  llm_client=OpenAIClient(
320
- llm_config=azure_llm_config,
320
+ config=azure_llm_config,
321
321
  client=llm_client_azure
322
322
  ),
323
323
  embedder=OpenAIEmbedder(
@@ -327,7 +327,7 @@ graphiti = Graphiti(
327
327
  client=embedding_client_azure
328
328
  ),
329
329
  cross_encoder=OpenAIRerankerClient(
330
- llm_config=LLMConfig(
330
+ config=LLMConfig(
331
331
  model=azure_llm_config.small_model # Use small model for reranking
332
332
  ),
333
333
  client=llm_client_azure
@@ -65,6 +65,12 @@ class Person(BaseModel):
65
65
  occupation: str | None = Field(..., description="The person's work occupation")
66
66
 
67
67
 
68
+ class City(BaseModel):
69
+ """A city"""
70
+
71
+ country: str | None = Field(..., description='The country the city is in')
72
+
73
+
68
74
  class IsPresidentOf(BaseModel):
69
75
  """Relationship between a person and the entity they are a president of"""
70
76
 
@@ -92,7 +98,7 @@ async def main(use_bulk: bool = False):
92
98
  await client.add_episode_bulk(
93
99
  raw_episodes,
94
100
  group_id=group_id,
95
- entity_types={'Person': Person},
101
+ entity_types={'Person': Person, 'City': City},
96
102
  edge_types={'IS_PRESIDENT_OF': IsPresidentOf},
97
103
  edge_type_map={('Person', 'Entity'): ['IS_PRESIDENT_OF']},
98
104
  )
@@ -109,7 +115,7 @@ async def main(use_bulk: bool = False):
109
115
  reference_time=message.actual_timestamp,
110
116
  source_description='Podcast Transcript',
111
117
  group_id=group_id,
112
- entity_types={'Person': Person},
118
+ entity_types={'Person': Person, 'City': City},
113
119
  edge_types={'IS_PRESIDENT_OF': IsPresidentOf},
114
120
  edge_type_map={('Person', 'Entity'): ['PRESIDENT_OF']},
115
121
  previous_episode_uuids=episode_uuids,
@@ -44,6 +44,7 @@ def get_range_indices(provider: GraphProvider) -> list[LiteralString]:
44
44
  'CREATE INDEX has_member_uuid IF NOT EXISTS FOR ()-[e:HAS_MEMBER]-() ON (e.uuid)',
45
45
  'CREATE INDEX entity_group_id IF NOT EXISTS FOR (n:Entity) ON (n.group_id)',
46
46
  'CREATE INDEX episode_group_id IF NOT EXISTS FOR (n:Episodic) ON (n.group_id)',
47
+ 'CREATE INDEX community_group_id IF NOT EXISTS FOR (n:Community) ON (n.group_id)',
47
48
  'CREATE INDEX relation_group_id IF NOT EXISTS FOR ()-[e:RELATES_TO]-() ON (e.group_id)',
48
49
  'CREATE INDEX mention_group_id IF NOT EXISTS FOR ()-[e:MENTIONS]-() ON (e.group_id)',
49
50
  'CREATE INDEX name_entity_index IF NOT EXISTS FOR (n:Entity) ON (n.name)',
@@ -26,7 +26,12 @@ from graphiti_core.cross_encoder.client import CrossEncoderClient
26
26
  from graphiti_core.cross_encoder.openai_reranker_client import OpenAIRerankerClient
27
27
  from graphiti_core.driver.driver import GraphDriver
28
28
  from graphiti_core.driver.neo4j_driver import Neo4jDriver
29
- from graphiti_core.edges import CommunityEdge, EntityEdge, EpisodicEdge
29
+ from graphiti_core.edges import (
30
+ CommunityEdge,
31
+ EntityEdge,
32
+ EpisodicEdge,
33
+ create_entity_edge_embeddings,
34
+ )
30
35
  from graphiti_core.embedder import EmbedderClient, OpenAIEmbedder
31
36
  from graphiti_core.graphiti_types import GraphitiClients
32
37
  from graphiti_core.helpers import (
@@ -36,7 +41,13 @@ from graphiti_core.helpers import (
36
41
  validate_group_id,
37
42
  )
38
43
  from graphiti_core.llm_client import LLMClient, OpenAIClient
39
- from graphiti_core.nodes import CommunityNode, EntityNode, EpisodeType, EpisodicNode
44
+ from graphiti_core.nodes import (
45
+ CommunityNode,
46
+ EntityNode,
47
+ EpisodeType,
48
+ EpisodicNode,
49
+ create_entity_node_embeddings,
50
+ )
40
51
  from graphiti_core.search.search import SearchConfig, search
41
52
  from graphiti_core.search.search_config import DEFAULT_SEARCH_LIMIT, SearchResults
42
53
  from graphiti_core.search.search_config_recipes import (
@@ -984,7 +995,7 @@ class Graphiti:
984
995
  if edge.fact_embedding is None:
985
996
  await edge.generate_embedding(self.embedder)
986
997
 
987
- resolved_nodes, uuid_map, _ = await resolve_extracted_nodes(
998
+ nodes, uuid_map, _ = await resolve_extracted_nodes(
988
999
  self.clients,
989
1000
  [source_node, target_node],
990
1001
  )
@@ -1012,9 +1023,12 @@ class Graphiti:
1012
1023
  ),
1013
1024
  )
1014
1025
 
1015
- await add_nodes_and_edges_bulk(
1016
- self.driver, [], [], resolved_nodes, [resolved_edge] + invalidated_edges, self.embedder
1017
- )
1026
+ edges: list[EntityEdge] = [resolved_edge] + invalidated_edges
1027
+
1028
+ await create_entity_edge_embeddings(self.embedder, edges)
1029
+ await create_entity_node_embeddings(self.embedder, nodes)
1030
+
1031
+ await add_nodes_and_edges_bulk(self.driver, [], [], nodes, edges, self.embedder)
1018
1032
 
1019
1033
  async def remove_episode(self, episode_uuid: str):
1020
1034
  # Find the episode to be deleted
@@ -118,7 +118,7 @@ class Node(BaseModel, ABC):
118
118
  return False
119
119
 
120
120
  @classmethod
121
- async def delete_by_group_id(cls, driver: GraphDriver, group_id: str):
121
+ async def delete_by_group_id(cls, driver: GraphDriver, group_id: str, batch_size: int = 100):
122
122
  if driver.provider == GraphProvider.FALKORDB:
123
123
  for label in ['Entity', 'Episodic', 'Community']:
124
124
  await driver.execute_query(
@@ -129,13 +129,18 @@ class Node(BaseModel, ABC):
129
129
  group_id=group_id,
130
130
  )
131
131
  else:
132
- await driver.execute_query(
133
- """
134
- MATCH (n:Entity|Episodic|Community {group_id: $group_id})
135
- DETACH DELETE n
136
- """,
137
- group_id=group_id,
138
- )
132
+ async with driver.session() as session:
133
+ await session.run(
134
+ """
135
+ MATCH (n:Entity|Episodic|Community {group_id: $group_id})
136
+ CALL {
137
+ WITH n
138
+ DETACH DELETE n
139
+ } IN TRANSACTIONS OF $batch_size ROWS
140
+ """,
141
+ group_id=group_id,
142
+ batch_size=batch_size,
143
+ )
139
144
 
140
145
  @classmethod
141
146
  async def get_by_uuid(cls, driver: GraphDriver, uuid: str): ...
@@ -31,7 +31,7 @@ class ComparisonOperator(Enum):
31
31
 
32
32
 
33
33
  class DateFilter(BaseModel):
34
- date: datetime = Field(description='A datetime to filter on')
34
+ date: datetime | None = Field(description='A datetime to filter on')
35
35
  comparison_operator: ComparisonOperator = Field(
36
36
  description='Comparison operator for date filter'
37
37
  )
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "graphiti-core"
3
3
  description = "A temporal graph building library"
4
- version = "0.18.2"
4
+ version = "0.18.4"
5
5
  authors = [
6
6
  { name = "Paul Paliychuk", email = "paul@getzep.com" },
7
7
  { name = "Preston Rasmussen", email = "preston@getzep.com" },
@@ -263,6 +263,30 @@
263
263
  "created_at": "2025-07-31T15:58:08Z",
264
264
  "repoId": 840056306,
265
265
  "pullRequestNo": 793
266
+ },
267
+ {
268
+ "name": "hugo-son",
269
+ "id": 141999572,
270
+ "comment_id": 3155009405,
271
+ "created_at": "2025-08-05T12:27:09Z",
272
+ "repoId": 840056306,
273
+ "pullRequestNo": 805
274
+ },
275
+ {
276
+ "name": "mvanders",
277
+ "id": 758617,
278
+ "comment_id": 3160523661,
279
+ "created_at": "2025-08-06T14:56:21Z",
280
+ "repoId": 840056306,
281
+ "pullRequestNo": 808
282
+ },
283
+ {
284
+ "name": "v-khanna",
285
+ "id": 102773390,
286
+ "comment_id": 3162200130,
287
+ "created_at": "2025-08-07T02:23:09Z",
288
+ "repoId": 840056306,
289
+ "pullRequestNo": 812
266
290
  }
267
291
  ]
268
292
  }
@@ -64,7 +64,7 @@ async def test_graphiti_init(driver):
64
64
  await graphiti.build_indices_and_constraints()
65
65
 
66
66
  search_filter = SearchFilters(
67
- node_labels=['Person'],
67
+ node_labels=['Person', 'City'],
68
68
  created_at=[[DateFilter(date=utc_now(), comparison_operator=ComparisonOperator.less_than)]],
69
69
  )
70
70
 
@@ -746,7 +746,7 @@ wheels = [
746
746
 
747
747
  [[package]]
748
748
  name = "graphiti-core"
749
- version = "0.18.2"
749
+ version = "0.18.4"
750
750
  source = { editable = "." }
751
751
  dependencies = [
752
752
  { name = "diskcache" },
File without changes
File without changes
File without changes
File without changes