新增删除文档的功能,供后面需要时使用。

This commit is contained in:
chenxudong 2025-04-03 13:56:43 +08:00
parent 4217b9dc66
commit 2a0886c7ce
2 changed files with 23 additions and 0 deletions

View File

@ -24,4 +24,8 @@ public class AiFileUploadRecord extends BaseModel {
@TableField(value = "file_size") @TableField(value = "file_size")
private long fileSize; private long fileSize;
@TableField(value = "effect_flag")
private Integer effectFlag;
} }

View File

@ -2,9 +2,11 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.crypto.digest.DigestUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.common.util.EleCommonUtil; import com.electromagnetic.industry.software.common.util.EleCommonUtil;
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
@ -30,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -57,6 +60,22 @@ public class ChatService {
vectorStore.write(documents); vectorStore.write(documents);
} }
public ElectromagneticResult<?> deleteDocument(List<String> ids) {
List<String> vectorIds = aiFileUploadRecordMapper.selectList(Wrappers.lambdaQuery(AiFileUploadRecord.class)
.in(AiFileUploadRecord::getId, ids))
.stream()
.map(AiFileUploadRecord::getVectorId)
.collect(Collectors.toList());
Optional<Boolean> delete = vectorStore.delete(vectorIds);
if (delete.isPresent() && ObjectUtil.equals(delete.get(), true)) {
aiFileUploadRecordMapper.update(Wrappers.lambdaUpdate(AiFileUploadRecord.class)
.in(AiFileUploadRecord::getId, ids)
.set(AiFileUploadRecord::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code));
return ElectromagneticResultUtil.success(true);
}
return ElectromagneticResultUtil.fail("-1", "删除失败。");
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception { public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception {