fixed edge

This commit is contained in:
Yannick Stephan
2025-02-17 23:20:10 +01:00
parent efb28c8003
commit 80272cbf16
6 changed files with 15 additions and 15 deletions

View File

@@ -67,4 +67,4 @@ class JsonDocStatusStorage(DocStatusStorage):
async def delete(self, doc_ids: list[str]):
for doc_id in doc_ids:
self._data.pop(doc_id, None)
await self.index_done_callback()
await self.index_done_callback()

View File

@@ -117,6 +117,7 @@ class MongoKVStorage(BaseKVStorage):
# Mongo handles persistence automatically
pass
@final
@dataclass
class MongoDocStatusStorage(DocStatusStorage):

View File

@@ -320,6 +320,7 @@ class OracleKVStorage(BaseKVStorage):
# Oracle handles persistence automatically
pass
@final
@dataclass
class OracleVectorDBStorage(BaseVectorStorage):

View File

@@ -300,7 +300,8 @@ class PGKVStorage(BaseKVStorage):
async def index_done_callback(self) -> None:
# PG handles persistence automatically
pass
@final
@dataclass
class PGVectorStorage(BaseVectorStorage):

View File

@@ -214,6 +214,7 @@ class TiDBKVStorage(BaseKVStorage):
# Ti handles persistence automatically
pass
@final
@dataclass
class TiDBVectorDBStorage(BaseVectorStorage):

View File

@@ -228,29 +228,25 @@ async def _merge_nodes_then_upsert(
async def _merge_edges_then_upsert(
src_id: str,
tgt_id: str,
edges_data: list[dict],
edges_data: list[dict[str, Any]],
knowledge_graph_inst: BaseGraphStorage,
global_config: dict,
global_config: dict[str, str],
):
already_weights = []
already_source_ids = []
already_description = []
already_keywords = []
already_weights: list[float] = []
already_source_ids: list[str] = []
already_description: list[str] = []
already_keywords: list[str] = []
if await knowledge_graph_inst.has_edge(src_id, tgt_id):
already_edge = await knowledge_graph_inst.get_edge(src_id, tgt_id)
# Handle the case where get_edge returns None or missing fields
if not already_edge:
return
# Handle the case where get_edge returns None or missing fields
# Get weight with default 0.0 if missing
if "weight" in already_edge:
already_weights.append(already_edge["weight"])
else:
logger.warning(f"Edge between {src_id} and {tgt_id} missing weight field")
already_weights.append(0.0)
already_weights.append(already_edge.get("weight", 0.0))
# Get source_id with empty string default if missing or None
# Get source_id with empty string default if missing or None
if "source_id" in already_edge and already_edge["source_id"] is not None:
already_source_ids.extend(
split_string_by_multi_markers(