From 94dc013d8c9022e11b96199c278f4b8ff0340ada Mon Sep 17 00:00:00 2001 From: paulpaliychuk Date: Fri, 20 Sep 2024 10:30:47 -0400 Subject: [PATCH] feat: Add delete group endpoint --- server/graph_service/routers/ingest.py | 6 ++++++ server/graph_service/zep_graphiti.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/server/graph_service/routers/ingest.py b/server/graph_service/routers/ingest.py index f1e2ab6..8337c79 100644 --- a/server/graph_service/routers/ingest.py +++ b/server/graph_service/routers/ingest.py @@ -90,6 +90,12 @@ async def delete_entity_edge(uuid: str, graphiti: ZepGraphitiDep): return Result(message='Entity Edge deleted', success=True) +@router.delete('/group/{group_id}', status_code=status.HTTP_200_OK) +async def delete_group(group_id: str, graphiti: ZepGraphitiDep): + await graphiti.delete_group(group_id) + return Result(message='Group deleted', success=True) + + @router.delete('/episode/{uuid}', status_code=status.HTTP_200_OK) async def delete_episode(uuid: str, graphiti: ZepGraphitiDep): await graphiti.delete_episodic_node(uuid) diff --git a/server/graph_service/zep_graphiti.py b/server/graph_service/zep_graphiti.py index c1ff566..91d29e4 100644 --- a/server/graph_service/zep_graphiti.py +++ b/server/graph_service/zep_graphiti.py @@ -33,6 +33,20 @@ async def get_entity_edge(self, uuid: str): except EdgeNotFoundError as e: raise HTTPException(status_code=404, detail=e.message) from e + async def delete_group(self, group_id: str): + try: + edges = await EntityEdge.get_by_group_ids(self.driver, [group_id]) + nodes = await EntityNode.get_by_group_ids(self.driver, [group_id]) + episodes = await EpisodicNode.get_by_group_ids(self.driver, [group_id]) + for edge in edges: + await edge.delete(self.driver) + for node in nodes: + await node.delete(self.driver) + for episode in episodes: + await episode.delete(self.driver) + except EdgeNotFoundError as e: + raise HTTPException(status_code=404, detail=e.message) from e + async def delete_entity_edge(self, uuid: str): try: edge = await EntityEdge.get_by_uuid(self.driver, uuid)