feat:【AI 大模型】增加知识库的删除功能
This commit is contained in:
parent
e11ee654ef
commit
3e8596ee4b
|
@ -63,6 +63,15 @@ public class AiKnowledgeController {
|
|||
knowledgeService.updateKnowledge(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除知识库")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('ai:knowledge:delete')")
|
||||
public CommonResult<Boolean> deleteKnowledge(@RequestParam("id") Long id) {
|
||||
knowledgeService.deleteKnowledge(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/simple-list")
|
||||
@Operation(summary = "获得知识库的精简列表")
|
||||
|
|
|
@ -36,4 +36,8 @@ public interface AiKnowledgeDocumentMapper extends BaseMapperX<AiKnowledgeDocume
|
|||
return selectList(AiKnowledgeDocumentDO::getStatus, status);
|
||||
}
|
||||
|
||||
default List<AiKnowledgeDocumentDO> selectListByKnowledgeId(Long knowledgeId) {
|
||||
return selectList(AiKnowledgeDocumentDO::getKnowledgeId, knowledgeId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -81,6 +81,13 @@ public interface AiKnowledgeDocumentService {
|
|||
*/
|
||||
void deleteKnowledgeDocument(Long id);
|
||||
|
||||
/**
|
||||
* 根据知识库编号,批量删除文档
|
||||
*
|
||||
* @param knowledgeId 知识库编号
|
||||
*/
|
||||
void deleteKnowledgeDocumentByKnowledgeId(Long knowledgeId);
|
||||
|
||||
/**
|
||||
* 校验文档是否存在
|
||||
*
|
||||
|
@ -105,6 +112,14 @@ public interface AiKnowledgeDocumentService {
|
|||
*/
|
||||
List<AiKnowledgeDocumentDO> getKnowledgeDocumentList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 根据知识库编号获取文档列表
|
||||
*
|
||||
* @param knowledgeId 知识库编号
|
||||
* @return 文档列表
|
||||
*/
|
||||
List<AiKnowledgeDocumentDO> getKnowledgeDocumentListByKnowledgeId(Long knowledgeId);
|
||||
|
||||
/**
|
||||
* 获取文档 Map
|
||||
*
|
||||
|
|
|
@ -211,4 +211,24 @@ public class AiKnowledgeDocumentServiceImpl implements AiKnowledgeDocumentServic
|
|||
return knowledgeDocumentMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AiKnowledgeDocumentDO> getKnowledgeDocumentListByKnowledgeId(Long knowledgeId) {
|
||||
return knowledgeDocumentMapper.selectListByKnowledgeId(knowledgeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteKnowledgeDocumentByKnowledgeId(Long knowledgeId) {
|
||||
// 1. 获取该知识库下的所有文档
|
||||
List<AiKnowledgeDocumentDO> documents = knowledgeDocumentMapper.selectListByKnowledgeId(knowledgeId);
|
||||
if (CollUtil.isEmpty(documents)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 逐个删除文档及其对应的段落
|
||||
for (AiKnowledgeDocumentDO document : documents) {
|
||||
deleteKnowledgeDocument(document.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.ai.service.model.AiModelService;
|
|||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -34,6 +35,8 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
|||
private AiModelService modelService;
|
||||
@Resource
|
||||
private AiKnowledgeSegmentService knowledgeSegmentService;
|
||||
@Resource
|
||||
private AiKnowledgeDocumentService knowledgeDocumentService;
|
||||
|
||||
@Override
|
||||
public Long createKnowledge(AiKnowledgeSaveReqVO createReqVO) {
|
||||
|
@ -66,8 +69,17 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteKnowledge(Long id) {
|
||||
// 1. 校验存在
|
||||
validateKnowledgeExists(id);
|
||||
|
||||
// 2. 删除知识库下的所有文档及段落
|
||||
knowledgeDocumentService.deleteKnowledgeDocumentByKnowledgeId(id);
|
||||
|
||||
// 3. 删除知识库
|
||||
// 特殊:知识库需要最后删除,不然相关的配置会找不到
|
||||
knowledgeMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -77,11 +89,11 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
|||
|
||||
@Override
|
||||
public AiKnowledgeDO validateKnowledgeExists(Long id) {
|
||||
AiKnowledgeDO knowledgeBase = knowledgeMapper.selectById(id);
|
||||
if (knowledgeBase == null) {
|
||||
AiKnowledgeDO knowledge = knowledgeMapper.selectById(id);
|
||||
if (knowledge == null) {
|
||||
throw exception(KNOWLEDGE_NOT_EXISTS);
|
||||
}
|
||||
return knowledgeBase;
|
||||
return knowledge;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue