graphiti-core 0.11.6rc5__tar.gz → 0.11.6rc7__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.11.6rc5 → graphiti_core-0.11.6rc7}/PKG-INFO +1 -1
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/helpers.py +22 -5
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search.py +3 -7
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/node_operations.py +3 -3
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/pyproject.toml +1 -1
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/LICENSE +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/README.md +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/cross_encoder/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/cross_encoder/bge_reranker_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/cross_encoder/client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/cross_encoder/openai_reranker_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/edges.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/embedder/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/embedder/client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/embedder/gemini.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/embedder/openai.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/embedder/voyage.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/errors.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/graphiti.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/graphiti_types.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/anthropic_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/config.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/errors.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/gemini_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/groq_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/openai_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/openai_generic_client.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/utils.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/edges/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/edges/edge_db_queries.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/nodes/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/nodes/node_db_queries.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/nodes.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/dedupe_edges.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/dedupe_nodes.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/eval.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/extract_edge_dates.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/extract_edges.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/extract_nodes.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/invalidate_edges.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/lib.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/models.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/prompt_helpers.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/summarize_nodes.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/py.typed +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_config.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_config_recipes.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_filters.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_helpers.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_utils.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/bulk_utils.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/datetime_utils.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/__init__.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/community_operations.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/edge_operations.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/graph_data_operations.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/temporal_operations.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/utils.py +0 -0
- {graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/ontology_utils/entity_types_utils.py +0 -0
|
@@ -18,6 +18,7 @@ import asyncio
|
|
|
18
18
|
import os
|
|
19
19
|
from collections.abc import Coroutine
|
|
20
20
|
from datetime import datetime
|
|
21
|
+
from typing import Any
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
from dotenv import load_dotenv
|
|
@@ -91,11 +92,27 @@ def normalize_l2(embedding: list[float]):
|
|
|
91
92
|
|
|
92
93
|
|
|
93
94
|
# Use this instead of asyncio.gather() to bound coroutines
|
|
94
|
-
async def semaphore_gather(
|
|
95
|
+
async def semaphore_gather(
|
|
96
|
+
*coroutines: Coroutine,
|
|
97
|
+
max_coroutines: int = SEMAPHORE_LIMIT,
|
|
98
|
+
):
|
|
95
99
|
semaphore = asyncio.Semaphore(max_coroutines)
|
|
96
100
|
|
|
97
|
-
async def
|
|
101
|
+
async def _wrap(coro: Coroutine) -> Any:
|
|
98
102
|
async with semaphore:
|
|
99
|
-
return await
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
return await coro
|
|
104
|
+
|
|
105
|
+
results = []
|
|
106
|
+
batch = []
|
|
107
|
+
for coroutine in coroutines:
|
|
108
|
+
batch.append(_wrap(coroutine))
|
|
109
|
+
# once we hit max_coroutines, gather and clear the batch
|
|
110
|
+
if len(batch) >= max_coroutines:
|
|
111
|
+
results.extend(await asyncio.gather(*batch))
|
|
112
|
+
batch.clear()
|
|
113
|
+
|
|
114
|
+
# gather any remaining coroutines in the final batch
|
|
115
|
+
if batch:
|
|
116
|
+
results.extend(await asyncio.gather(*batch))
|
|
117
|
+
|
|
118
|
+
return results
|
|
@@ -458,14 +458,10 @@ async def community_search(
|
|
|
458
458
|
config.mmr_lambda,
|
|
459
459
|
)
|
|
460
460
|
elif config.reranker == CommunityReranker.cross_encoder:
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}
|
|
464
|
-
reranked_summaries = await cross_encoder.rank(query, list(summary_to_uuid_map.keys()))
|
|
461
|
+
name_to_uuid_map = {node.name: node.uuid for result in search_results for node in result}
|
|
462
|
+
reranked_nodes = await cross_encoder.rank(query, list(name_to_uuid_map.keys()))
|
|
465
463
|
reranked_uuids = [
|
|
466
|
-
|
|
467
|
-
for fact, score in reranked_summaries
|
|
468
|
-
if score >= reranker_min_score
|
|
464
|
+
name_to_uuid_map[name] for name, score in reranked_nodes if score >= reranker_min_score
|
|
469
465
|
]
|
|
470
466
|
|
|
471
467
|
reranked_communities = [community_uuid_map[uuid] for uuid in reranked_uuids]
|
|
@@ -18,6 +18,7 @@ import logging
|
|
|
18
18
|
from contextlib import suppress
|
|
19
19
|
from time import time
|
|
20
20
|
from typing import Any
|
|
21
|
+
from uuid import uuid4
|
|
21
22
|
|
|
22
23
|
import pydantic
|
|
23
24
|
from pydantic import BaseModel, Field
|
|
@@ -395,7 +396,8 @@ async def extract_attributes_from_node(
|
|
|
395
396
|
Field(description=field_info.description),
|
|
396
397
|
)
|
|
397
398
|
|
|
398
|
-
|
|
399
|
+
unique_model_name = f'EntityAttributes_{uuid4().hex}'
|
|
400
|
+
entity_attributes_model = pydantic.create_model(unique_model_name, **attributes_definitions)
|
|
399
401
|
|
|
400
402
|
summary_context: dict[str, Any] = {
|
|
401
403
|
'node': node_context,
|
|
@@ -411,12 +413,10 @@ async def extract_attributes_from_node(
|
|
|
411
413
|
)
|
|
412
414
|
|
|
413
415
|
node.summary = llm_response.get('summary', node.summary)
|
|
414
|
-
node.name = llm_response.get('name', node.name)
|
|
415
416
|
node_attributes = {key: value for key, value in llm_response.items()}
|
|
416
417
|
|
|
417
418
|
with suppress(KeyError):
|
|
418
419
|
del node_attributes['summary']
|
|
419
|
-
del node_attributes['name']
|
|
420
420
|
|
|
421
421
|
node.attributes.update(node_attributes)
|
|
422
422
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "graphiti-core"
|
|
3
3
|
description = "A temporal graph building library"
|
|
4
|
-
version = "0.11.
|
|
4
|
+
version = "0.11.6pre7"
|
|
5
5
|
authors = [
|
|
6
6
|
{ "name" = "Paul Paliychuk", "email" = "paul@getzep.com" },
|
|
7
7
|
{ "name" = "Preston Rasmussen", "email" = "preston@getzep.com" },
|
|
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.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/anthropic_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/gemini_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/llm_client/openai_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/edges/edge_db_queries.py
RENAMED
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/models/nodes/node_db_queries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/extract_edge_dates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/invalidate_edges.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/prompts/summarize_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/search/search_config_recipes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphiti_core-0.11.6rc5 → graphiti_core-0.11.6rc7}/graphiti_core/utils/maintenance/utils.py
RENAMED
|
File without changes
|
|
File without changes
|