Merged PR 124: Update deletion for video

Update deletion for video
This commit is contained in:
2025-05-13 14:07:44 +00:00
2 changed files with 64 additions and 0 deletions

View File

@@ -56,6 +56,17 @@ public class VectorStoreController {
return ResponseEntity.ok("Request In Working");
}
@PostMapping("/deleteVideoRecords")
public ResponseEntity<String> deleteVideoRecords(@RequestBody DeletionRequest deletionRequest){
deletionService.deleteVideoRecords(deletionRequest);
return ResponseEntity.ok("Request In Working");
}
@PostMapping("/deleteVideoRecordsFromVectorStore")
public ResponseEntity<String> deleteVideoRecordsOnlyFromVectorStore(@RequestBody DeletionRequest deletionRequest){
deletionService.deleteVideoRecordsOnlyFromVectorStore(deletionRequest);
return ResponseEntity.ok("Request In Working");
}
@PostMapping("/deleteGitRecords")
public ResponseEntity<String> deleteGitRecords(@RequestBody DeleteGitRepoDetailsRequest deleteGitRepoDetailsRequest){

View File

@@ -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<Void> deleteRecordsOfGitRepo(DeleteGitRepoDetailsRequest deleteGitRepoDetailsRequest) {
return CompletableFuture.runAsync(() -> {