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.
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/PKG-INFO +3 -3
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/README.md +2 -2
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/podcast_runner.py +8 -2
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graph_queries.py +1 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graphiti.py +20 -6
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/nodes.py +13 -8
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_filters.py +1 -1
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/pyproject.toml +1 -1
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/signatures/version1/cla.json +24 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_graphiti_int.py +1 -1
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/uv.lock +1 -1
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.env.example +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/dependabot.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/pull_request_template.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/secret_scanning.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/cla.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/claude-code-review.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/claude.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/codeql.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/lint.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/mcp-server-docker.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/release-graphiti-core.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/typecheck.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.github/workflows/unit_tests.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/.gitignore +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CLAUDE.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CODE_OF_CONDUCT.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/CONTRIBUTING.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Dockerfile +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/LICENSE +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Makefile +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/SECURITY.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/Zep-CLA.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/conftest.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/depot.json +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/docker-compose.test.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/docker-compose.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/ellipsis.yaml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/data/manybirds_products.json +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/ecommerce/runner.ipynb +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/ecommerce/runner.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/langgraph-agent/agent.ipynb +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/langgraph-agent/tinybirds-jess.png +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/podcast_transcript.txt +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/podcast/transcript_parser.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/README.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/quickstart_falkordb.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/quickstart_neo4j.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/quickstart/requirements.txt +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/parser.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/runner.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/examples/wizard_of_oz/woo.txt +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/bge_reranker_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/gemini_reranker_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/openai_reranker_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/driver.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/falkordb_driver.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/driver/neo4j_driver.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/edges.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/azure_openai.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/gemini.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/openai.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/embedder/voyage.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/errors.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/graphiti_types.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/helpers.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/anthropic_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/azure_openai_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/config.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/errors.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/gemini_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/groq_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_base_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_generic_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/edges/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/edges/edge_db_queries.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/nodes/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/models/nodes/node_db_queries.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/dedupe_edges.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/dedupe_nodes.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/eval.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_edge_dates.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_edges.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/extract_nodes.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/invalidate_edges.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/lib.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/models.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/prompt_helpers.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/prompts/summarize_nodes.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/py.typed +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_config.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_config_recipes.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_helpers.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/search/search_utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/telemetry/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/telemetry/telemetry.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/bulk_utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/datetime_utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/community_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/edge_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/graph_data_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/node_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/temporal_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/ontology_utils/entity_types_utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/arxiv-screenshot.png +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/graphiti-graph-intro.gif +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/graphiti-intro-slides-stock-2.gif +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/images/simple_graph.svg +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/.env.example +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/.python-version +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/Dockerfile +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/README.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/cursor_rules.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/docker-compose.yml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/graphiti_mcp_server.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/mcp_config_sse_example.json +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/mcp_config_stdio_example.json +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/pyproject.toml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/mcp_server/uv.lock +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/poetry.lock +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/py.typed +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/pytest.ini +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/.env.example +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/Makefile +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/README.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/config.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/common.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/ingest.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/dto/retrieve.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/main.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/ingest.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/routers/retrieve.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/graph_service/zep_graphiti.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/pyproject.toml +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/server/uv.lock +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_bge_reranker_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_gemini_reranker_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/driver/__init__.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/driver/test_falkordb_driver.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/embedder_fixtures.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_gemini.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_openai.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/embedder/test_voyage.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/data/longmemeval_data/README.md +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/data/longmemeval_data/longmemeval_oracle.json +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/eval_cli.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/eval_e2e_graph_building.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/pytest.ini +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/evals/utils.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/helpers_test.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_anthropic_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_anthropic_client_int.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_errors.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/llm_client/test_gemini_client.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_edge_int.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_entity_exclusion_int.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/test_node_int.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/maintenance/test_edge_operations.py +0 -0
- {graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/maintenance/test_temporal_operations_int.py +0 -0
- {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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
1016
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
)
|
|
@@ -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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/bge_reranker_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/gemini_reranker_client.py
RENAMED
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/cross_encoder/openai_reranker_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/azure_openai_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/llm_client/openai_generic_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/edge_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/node_operations.py
RENAMED
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/graphiti_core/utils/maintenance/temporal_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_bge_reranker_client.py
RENAMED
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/cross_encoder/test_gemini_reranker_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.18.2 → graphiti_core-0.18.4}/tests/utils/maintenance/test_edge_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|