From 4e48a7ac230d3540014b0f65dc07dd3a6d3399e9 Mon Sep 17 00:00:00 2001 From: Emanuele Ferrelli Date: Tue, 13 May 2025 16:07:20 +0200 Subject: [PATCH] Update deletion for video --- .../FeApi/VectorStoreController.java | 11 ++++ .../apollo/services/DeletionService.java | 53 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/main/java/com/olympus/apollo/controllers/FeApi/VectorStoreController.java b/src/main/java/com/olympus/apollo/controllers/FeApi/VectorStoreController.java index bdf8b40..5744cc4 100644 --- a/src/main/java/com/olympus/apollo/controllers/FeApi/VectorStoreController.java +++ b/src/main/java/com/olympus/apollo/controllers/FeApi/VectorStoreController.java @@ -56,6 +56,17 @@ public class VectorStoreController { return ResponseEntity.ok("Request In Working"); } + @PostMapping("/deleteVideoRecords") + public ResponseEntity deleteVideoRecords(@RequestBody DeletionRequest deletionRequest){ + deletionService.deleteVideoRecords(deletionRequest); + return ResponseEntity.ok("Request In Working"); + } + + @PostMapping("/deleteVideoRecordsFromVectorStore") + public ResponseEntity deleteVideoRecordsOnlyFromVectorStore(@RequestBody DeletionRequest deletionRequest){ + deletionService.deleteVideoRecordsOnlyFromVectorStore(deletionRequest); + return ResponseEntity.ok("Request In Working"); + } @PostMapping("/deleteGitRecords") public ResponseEntity deleteGitRecords(@RequestBody DeleteGitRepoDetailsRequest deleteGitRepoDetailsRequest){ diff --git a/src/main/java/com/olympus/apollo/services/DeletionService.java b/src/main/java/com/olympus/apollo/services/DeletionService.java index aaef865..7670055 100644 --- a/src/main/java/com/olympus/apollo/services/DeletionService.java +++ b/src/main/java/com/olympus/apollo/services/DeletionService.java @@ -19,11 +19,13 @@ import com.olympus.apollo.repository.KSGitInfoRepository; import com.olympus.apollo.repository.KSGitIngestionInfoRepository; import com.olympus.apollo.repository.KSIngestionInfoRepository; import com.olympus.apollo.repository.KSTextsRepository; +import com.olympus.apollo.repository.KSVideoRepository; import com.olympus.apollo.repository.VectorStoreRepository; import com.olympus.dto.DeleteGitRepoDetailsRequest; import com.olympus.dto.DeletionRequest; import com.olympus.dto.ResultDTO; import com.olympus.model.apollo.KSDocument; +import com.olympus.model.apollo.KSVideo; import com.olympus.model.apollo.KSGitInfo; @Service @@ -34,6 +36,9 @@ public class DeletionService { @Autowired private KSDocumentRepository ksDocumentRepository; + @Autowired + private KSVideoRepository ksVideoRepository; + @Autowired private KSTextsRepository ksTextsRepository; @@ -103,6 +108,54 @@ public class DeletionService { } } + @Async("asyncTaskExecutor") + public void deleteVideoRecords(DeletionRequest deletionRequest) { + try { + + String rag_filter = "KsDocumentId=='"+deletionRequest.getKsDocumentId()+"'"; + logger.info("Starting deletion"); + vectorStore.delete(rag_filter); + + ksVideoRepository.deleteById(deletionRequest.getKsDocumentId()); + logger.info("KSDocument with id {} deleted successfully.", deletionRequest.getKsDocumentId()); + // }else{ + // logger.warn("KSDocument with id {} does not exist.", deletionRequest.getKsDocumentId()); + // } + } catch (Exception e) { + logger.error("An error occurred while deleting records: ", e+" "+Thread.currentThread().getName()); + throw new RuntimeException("An error occurred while deleting records", e); + } + } + + @Async("asyncTaskExecutor") + public void deleteVideoRecordsOnlyFromVectorStore(DeletionRequest deletionRequest) { + try { + + KSVideo ksVideo = ksVideoRepository.findById(deletionRequest.getKsDocumentId()).get(); + ksVideo.setIngestionStatus("DELETING"); + ksVideoRepository.save(ksVideo); + + String rag_filter = "KsDocumentId=='"+deletionRequest.getKsDocumentId()+"'"; + + logger.info("Starting deletion"); + vectorStore.delete(rag_filter); + + //elimino dal vectorStore ma mantengo il record + ksVideo.setIngestionStatus("LOADED"); + Date now = new Date(); + ksVideo.setIngestionDate(now); + + ksVideoRepository.save(ksVideo); + logger.info("KSVideo with id {} deleted from VectorStore successfully.", deletionRequest.getKsDocumentId()); + // }else{ + // logger.warn("KSDocument with id {} does not exist.", deletionRequest.getKsDocumentId()); + // } + } catch (Exception e) { + logger.error("An error occurred while deleting records: ", e+" "+Thread.currentThread().getName()); + throw new RuntimeException("An error occurred while deleting records", e); + } + } + @Async public CompletableFuture deleteRecordsOfGitRepo(DeleteGitRepoDetailsRequest deleteGitRepoDetailsRequest) { return CompletableFuture.runAsync(() -> {