This commit is contained in:
LarFii
2024-11-11 17:54:22 +08:00
parent b1f35004b1
commit 379b31090e
3 changed files with 23 additions and 15 deletions

View File

@@ -333,14 +333,16 @@ class LightRAG:
return loop.run_until_complete(self.adelete_by_entity(entity_name)) return loop.run_until_complete(self.adelete_by_entity(entity_name))
async def adelete_by_entity(self, entity_name: str): async def adelete_by_entity(self, entity_name: str):
entity_name = f"\"{entity_name.upper()}\"" entity_name = f'"{entity_name.upper()}"'
try: try:
await self.entities_vdb.delete_entity(entity_name) await self.entities_vdb.delete_entity(entity_name)
await self.relationships_vdb.delete_relation(entity_name) await self.relationships_vdb.delete_relation(entity_name)
await self.chunk_entity_relation_graph.delete_node(entity_name) await self.chunk_entity_relation_graph.delete_node(entity_name)
logger.info(f"Entity '{entity_name}' and its relationships have been deleted.") logger.info(
f"Entity '{entity_name}' and its relationships have been deleted."
)
await self._delete_by_entity_done() await self._delete_by_entity_done()
except Exception as e: except Exception as e:
logger.error(f"Error while deleting entity '{entity_name}': {e}") logger.error(f"Error while deleting entity '{entity_name}': {e}")

View File

@@ -136,17 +136,23 @@ class NanoVectorDBStorage(BaseVectorStorage):
async def delete_relation(self, entity_name: str): async def delete_relation(self, entity_name: str):
try: try:
relations = [ relations = [
dp for dp in self.client_storage["data"] if dp["src_id"] == entity_name or dp["tgt_id"] == entity_name dp
for dp in self.client_storage["data"]
if dp["src_id"] == entity_name or dp["tgt_id"] == entity_name
] ]
ids_to_delete = [relation["__id__"] for relation in relations] ids_to_delete = [relation["__id__"] for relation in relations]
if ids_to_delete: if ids_to_delete:
self._client.delete(ids_to_delete) self._client.delete(ids_to_delete)
logger.info(f"All relations related to entity {entity_name} have been deleted.") logger.info(
f"All relations related to entity {entity_name} have been deleted."
)
else: else:
logger.info(f"No relations found for entity {entity_name}.") logger.info(f"No relations found for entity {entity_name}.")
except Exception as e: except Exception as e:
logger.error(f"Error while deleting relations for entity {entity_name}: {e}") logger.error(
f"Error while deleting relations for entity {entity_name}: {e}"
)
async def index_done_callback(self): async def index_done_callback(self):
self._client.save() self._client.save()