graphiti-core 0.18.8__tar.gz → 0.18.9__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.8 → graphiti_core-0.18.9}/PKG-INFO +1 -1
  2. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/podcast/podcast_runner.py +5 -1
  3. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/openai_base_client.py +3 -3
  4. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/openai_client.py +6 -4
  5. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/extract_edges.py +1 -0
  6. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/extract_nodes.py +1 -1
  7. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/node_operations.py +7 -3
  8. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/pyproject.toml +1 -1
  9. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/uv.lock +2 -2
  10. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.env.example +0 -0
  11. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  12. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/dependabot.yml +0 -0
  13. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/pull_request_template.md +0 -0
  14. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/secret_scanning.yml +0 -0
  15. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/cla.yml +0 -0
  16. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/claude-code-review.yml +0 -0
  17. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/claude.yml +0 -0
  18. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/codeql.yml +0 -0
  19. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/lint.yml +0 -0
  20. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/mcp-server-docker.yml +0 -0
  21. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/release-graphiti-core.yml +0 -0
  22. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/typecheck.yml +0 -0
  23. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.github/workflows/unit_tests.yml +0 -0
  24. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/.gitignore +0 -0
  25. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/CLAUDE.md +0 -0
  26. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/CODE_OF_CONDUCT.md +0 -0
  27. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/CONTRIBUTING.md +0 -0
  28. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/Dockerfile +0 -0
  29. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/LICENSE +0 -0
  30. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/Makefile +0 -0
  31. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/README.md +0 -0
  32. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/SECURITY.md +0 -0
  33. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/Zep-CLA.md +0 -0
  34. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/conftest.py +0 -0
  35. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/depot.json +0 -0
  36. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/docker-compose.test.yml +0 -0
  37. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/docker-compose.yml +0 -0
  38. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/ellipsis.yaml +0 -0
  39. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/data/manybirds_products.json +0 -0
  40. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/ecommerce/runner.ipynb +0 -0
  41. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/ecommerce/runner.py +0 -0
  42. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/langgraph-agent/agent.ipynb +0 -0
  43. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/langgraph-agent/tinybirds-jess.png +0 -0
  44. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/podcast/podcast_transcript.txt +0 -0
  45. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/podcast/transcript_parser.py +0 -0
  46. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/quickstart/README.md +0 -0
  47. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/quickstart/quickstart_falkordb.py +0 -0
  48. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/quickstart/quickstart_neo4j.py +0 -0
  49. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/quickstart/requirements.txt +0 -0
  50. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/wizard_of_oz/parser.py +0 -0
  51. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/wizard_of_oz/runner.py +0 -0
  52. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/examples/wizard_of_oz/woo.txt +0 -0
  53. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/__init__.py +0 -0
  54. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/cross_encoder/__init__.py +0 -0
  55. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/cross_encoder/bge_reranker_client.py +0 -0
  56. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/cross_encoder/client.py +0 -0
  57. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/cross_encoder/gemini_reranker_client.py +0 -0
  58. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/cross_encoder/openai_reranker_client.py +0 -0
  59. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/driver/__init__.py +0 -0
  60. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/driver/driver.py +0 -0
  61. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/driver/falkordb_driver.py +0 -0
  62. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/driver/neo4j_driver.py +0 -0
  63. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/edges.py +0 -0
  64. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/__init__.py +0 -0
  65. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/azure_openai.py +0 -0
  66. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/client.py +0 -0
  67. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/gemini.py +0 -0
  68. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/openai.py +0 -0
  69. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/embedder/voyage.py +0 -0
  70. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/errors.py +0 -0
  71. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/graph_queries.py +0 -0
  72. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/graphiti.py +0 -0
  73. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/graphiti_types.py +0 -0
  74. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/helpers.py +0 -0
  75. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/__init__.py +0 -0
  76. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/anthropic_client.py +0 -0
  77. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/azure_openai_client.py +0 -0
  78. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/client.py +0 -0
  79. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/config.py +0 -0
  80. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/errors.py +0 -0
  81. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/gemini_client.py +0 -0
  82. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/groq_client.py +0 -0
  83. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/openai_generic_client.py +0 -0
  84. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/llm_client/utils.py +0 -0
  85. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/models/__init__.py +0 -0
  86. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/models/edges/__init__.py +0 -0
  87. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/models/edges/edge_db_queries.py +0 -0
  88. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/models/nodes/__init__.py +0 -0
  89. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/models/nodes/node_db_queries.py +0 -0
  90. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/nodes.py +0 -0
  91. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/__init__.py +0 -0
  92. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/dedupe_edges.py +0 -0
  93. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/dedupe_nodes.py +0 -0
  94. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/eval.py +0 -0
  95. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/extract_edge_dates.py +0 -0
  96. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/invalidate_edges.py +0 -0
  97. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/lib.py +0 -0
  98. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/models.py +0 -0
  99. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/prompt_helpers.py +0 -0
  100. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/prompts/summarize_nodes.py +0 -0
  101. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/py.typed +0 -0
  102. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/__init__.py +0 -0
  103. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search.py +0 -0
  104. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search_config.py +0 -0
  105. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search_config_recipes.py +0 -0
  106. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search_filters.py +0 -0
  107. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search_helpers.py +0 -0
  108. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/search/search_utils.py +0 -0
  109. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/telemetry/__init__.py +0 -0
  110. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/telemetry/telemetry.py +0 -0
  111. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/__init__.py +0 -0
  112. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/bulk_utils.py +0 -0
  113. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/datetime_utils.py +0 -0
  114. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/__init__.py +0 -0
  115. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/community_operations.py +0 -0
  116. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/edge_operations.py +0 -0
  117. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/graph_data_operations.py +0 -0
  118. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/temporal_operations.py +0 -0
  119. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/maintenance/utils.py +0 -0
  120. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/graphiti_core/utils/ontology_utils/entity_types_utils.py +0 -0
  121. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/images/arxiv-screenshot.png +0 -0
  122. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/images/graphiti-graph-intro.gif +0 -0
  123. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/images/graphiti-intro-slides-stock-2.gif +0 -0
  124. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/images/simple_graph.svg +0 -0
  125. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/.env.example +0 -0
  126. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/.python-version +0 -0
  127. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/Dockerfile +0 -0
  128. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/README.md +0 -0
  129. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/cursor_rules.md +0 -0
  130. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/docker-compose.yml +0 -0
  131. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/graphiti_mcp_server.py +0 -0
  132. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/mcp_config_sse_example.json +0 -0
  133. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/mcp_config_stdio_example.json +0 -0
  134. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/pyproject.toml +0 -0
  135. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/mcp_server/uv.lock +0 -0
  136. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/poetry.lock +0 -0
  137. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/py.typed +0 -0
  138. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/pytest.ini +0 -0
  139. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/.env.example +0 -0
  140. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/Makefile +0 -0
  141. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/README.md +0 -0
  142. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/__init__.py +0 -0
  143. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/config.py +0 -0
  144. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/dto/__init__.py +0 -0
  145. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/dto/common.py +0 -0
  146. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/dto/ingest.py +0 -0
  147. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/dto/retrieve.py +0 -0
  148. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/main.py +0 -0
  149. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/routers/__init__.py +0 -0
  150. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/routers/ingest.py +0 -0
  151. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/routers/retrieve.py +0 -0
  152. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/graph_service/zep_graphiti.py +0 -0
  153. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/pyproject.toml +0 -0
  154. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/server/uv.lock +0 -0
  155. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/signatures/version1/cla.json +0 -0
  156. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/cross_encoder/test_bge_reranker_client.py +0 -0
  157. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/cross_encoder/test_gemini_reranker_client.py +0 -0
  158. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/driver/__init__.py +0 -0
  159. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/driver/test_falkordb_driver.py +0 -0
  160. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/embedder/embedder_fixtures.py +0 -0
  161. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/embedder/test_gemini.py +0 -0
  162. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/embedder/test_openai.py +0 -0
  163. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/embedder/test_voyage.py +0 -0
  164. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/data/longmemeval_data/README.md +0 -0
  165. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/data/longmemeval_data/longmemeval_oracle.json +0 -0
  166. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/eval_cli.py +0 -0
  167. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/eval_e2e_graph_building.py +0 -0
  168. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/pytest.ini +0 -0
  169. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/evals/utils.py +0 -0
  170. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/helpers_test.py +0 -0
  171. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/llm_client/test_anthropic_client.py +0 -0
  172. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/llm_client/test_anthropic_client_int.py +0 -0
  173. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/llm_client/test_client.py +0 -0
  174. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/llm_client/test_errors.py +0 -0
  175. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/llm_client/test_gemini_client.py +0 -0
  176. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/test_edge_int.py +0 -0
  177. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/test_entity_exclusion_int.py +0 -0
  178. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/test_graphiti_int.py +0 -0
  179. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/test_node_int.py +0 -0
  180. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/utils/maintenance/test_edge_operations.py +0 -0
  181. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/tests/utils/maintenance/test_temporal_operations_int.py +0 -0
  182. {graphiti_core-0.18.8 → graphiti_core-0.18.9}/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.8
3
+ Version: 0.18.9
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
@@ -77,7 +77,11 @@ class IsPresidentOf(BaseModel):
77
77
 
78
78
  async def main(use_bulk: bool = False):
79
79
  setup_logging()
80
- client = Graphiti(neo4j_uri, neo4j_user, neo4j_password)
80
+ client = Graphiti(
81
+ neo4j_uri,
82
+ neo4j_user,
83
+ neo4j_password,
84
+ )
81
85
  await clear_data(client.driver)
82
86
  await client.build_indices_and_constraints()
83
87
  messages = parse_podcast_messages()
@@ -107,10 +107,10 @@ class BaseOpenAIClient(LLMClient):
107
107
 
108
108
  def _handle_structured_response(self, response: Any) -> dict[str, Any]:
109
109
  """Handle structured response parsing and validation."""
110
- response_object = response.choices[0].message
110
+ response_object = response.output_text
111
111
 
112
- if response_object.parsed:
113
- return response_object.parsed.model_dump()
112
+ if response_object:
113
+ return json.loads(response_object)
114
114
  elif response_object.refusal:
115
115
  raise RefusalError(response_object.refusal)
116
116
  else:
@@ -69,14 +69,16 @@ class OpenAIClient(BaseOpenAIClient):
69
69
  response_model: type[BaseModel],
70
70
  ):
71
71
  """Create a structured completion using OpenAI's beta parse API."""
72
- return await self.client.beta.chat.completions.parse(
72
+ response = await self.client.responses.parse(
73
73
  model=model,
74
- messages=messages,
74
+ input=messages, # type: ignore
75
75
  temperature=temperature,
76
- max_tokens=max_tokens,
77
- response_format=response_model, # type: ignore
76
+ max_output_tokens=max_tokens,
77
+ text_format=response_model, # type: ignore
78
78
  )
79
79
 
80
+ return response
81
+
80
82
  async def _create_completion(
81
83
  self,
82
84
  model: str,
@@ -94,6 +94,7 @@ Only extract facts that:
94
94
  - involve two DISTINCT ENTITIES from the ENTITIES list,
95
95
  - are clearly stated or unambiguously implied in the CURRENT MESSAGE,
96
96
  and can be represented as edges in a knowledge graph.
97
+ - Facts should include entity names rather than pronouns whenever possible.
97
98
  - The FACT TYPES provide a list of the most important types of facts, make sure to extract facts of these types
98
99
  - The FACT TYPES are not an exhaustive list, extract all facts from the message even if they do not fit into one
99
100
  of the FACT TYPES
@@ -100,7 +100,7 @@ Instructions:
100
100
 
101
101
  You are given a conversation context and a CURRENT MESSAGE. Your task is to extract **entity nodes** mentioned **explicitly or implicitly** in the CURRENT MESSAGE.
102
102
  Pronoun references such as he/she/they or this/that/those should be disambiguated to the names of the
103
- reference entities.
103
+ reference entities. Only extract distinct entities from the CURRENT MESSAGE. Don't extract pronouns like you, me, he/she/they, we/us as entities.
104
104
 
105
105
  1. **Speaker Extraction**: Always extract the speaker (the part before the colon `:` in each dialogue line) as the first entity node.
106
106
  - If the speaker is mentioned again in the message, treat both mentions as a **single entity**.
@@ -152,9 +152,13 @@ async def extract_nodes(
152
152
  # Convert the extracted data into EntityNode objects
153
153
  extracted_nodes = []
154
154
  for extracted_entity in filtered_extracted_entities:
155
- entity_type_name = entity_types_context[extracted_entity.entity_type_id].get(
156
- 'entity_type_name'
157
- )
155
+ type_id = extracted_entity.entity_type_id
156
+ if 0 <= type_id < len(entity_types_context):
157
+ entity_type_name = entity_types_context[extracted_entity.entity_type_id].get(
158
+ 'entity_type_name'
159
+ )
160
+ else:
161
+ entity_type_name = 'Entity'
158
162
 
159
163
  # Check if this entity type should be excluded
160
164
  if excluded_entity_types and entity_type_name in excluded_entity_types:
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "graphiti-core"
3
3
  description = "A temporal graph building library"
4
- version = "0.18.8"
4
+ version = "0.18.9"
5
5
  authors = [
6
6
  { name = "Paul Paliychuk", email = "paul@getzep.com" },
7
7
  { name = "Preston Rasmussen", email = "preston@getzep.com" },
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 2
3
3
  requires-python = ">=3.10, <4"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.14'",
@@ -746,7 +746,7 @@ wheels = [
746
746
 
747
747
  [[package]]
748
748
  name = "graphiti-core"
749
- version = "0.18.8"
749
+ version = "0.18.9"
750
750
  source = { editable = "." }
751
751
  dependencies = [
752
752
  { name = "diskcache" },
File without changes
File without changes
File without changes
File without changes
File without changes