mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-25 00:23:53 +08:00
-7
@@ -47,13 +47,6 @@ public interface KnowledgeBaseService extends BaseService<KnowledgeBaseEntity> {
|
|||||||
*/
|
*/
|
||||||
KnowledgeBaseDTO update(KnowledgeBaseDTO knowledgeBaseDTO);
|
KnowledgeBaseDTO update(KnowledgeBaseDTO knowledgeBaseDTO);
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID删除知识库
|
|
||||||
*
|
|
||||||
* @param id 知识库ID
|
|
||||||
*/
|
|
||||||
void delete(String id);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据知识库ID查询知识库
|
* 根据知识库ID查询知识库
|
||||||
*
|
*
|
||||||
|
|||||||
+2
-52
@@ -206,7 +206,7 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl<KnowledgeBaseDao,
|
|||||||
|
|
||||||
// 删除缓存
|
// 删除缓存
|
||||||
if (entity.getDatasetId() != null) {
|
if (entity.getDatasetId() != null) {
|
||||||
redisUtils.delete(RedisKeys.getKnowledgeBaseCacheKey(entity.getDatasetId()));
|
redisUtils.delete(RedisKeys.getKnowledgeBaseCacheKey(entity.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调用RAGFlow API更新数据集
|
// 调用RAGFlow API更新数据集
|
||||||
@@ -228,57 +228,6 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl<KnowledgeBaseDao,
|
|||||||
return ConvertUtils.sourceToTarget(entity, KnowledgeBaseDTO.class);
|
return ConvertUtils.sourceToTarget(entity, KnowledgeBaseDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void delete(String id) {
|
|
||||||
if (StringUtils.isBlank(id)) {
|
|
||||||
throw new RenException(ErrorCode.IDENTIFIER_NOT_NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 先获取实体以获取datasetId用于删除缓存
|
|
||||||
KnowledgeBaseEntity tempEntity = knowledgeBaseDao.selectById(id);
|
|
||||||
if (tempEntity != null && tempEntity.getDatasetId() != null) {
|
|
||||||
redisUtils.delete(RedisKeys.getKnowledgeBaseCacheKey(tempEntity.getDatasetId()));
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("=== 开始删除操作 ===");
|
|
||||||
log.info("删除ID: {}", id);
|
|
||||||
|
|
||||||
KnowledgeBaseEntity entity = knowledgeBaseDao.selectById(id);
|
|
||||||
if (entity == null) {
|
|
||||||
log.warn("记录不存在,ID: {}", id);
|
|
||||||
throw new RenException(ErrorCode.Knowledge_Base_RECORD_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("找到记录: ID={}, datasetId={}, ragModelId={}",
|
|
||||||
entity.getId(), entity.getDatasetId(), entity.getRagModelId());
|
|
||||||
|
|
||||||
// 先调用RAGFlow API删除数据集
|
|
||||||
boolean apiDeleteSuccess = false;
|
|
||||||
if (StringUtils.isNotBlank(entity.getDatasetId()) && StringUtils.isNotBlank(entity.getRagModelId())) {
|
|
||||||
try {
|
|
||||||
log.info("开始调用RAGFlow API删除数据集");
|
|
||||||
Map<String, Object> ragConfig = getValidatedRAGConfig(entity.getRagModelId());
|
|
||||||
deleteDatasetInRAGFlow(entity.getDatasetId(), ragConfig);
|
|
||||||
log.info("RAGFlow API删除调用完成");
|
|
||||||
apiDeleteSuccess = true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("删除RAGFlow数据集失败: {}", e.getMessage());
|
|
||||||
throw new RenException(ErrorCode.RAG_API_ERROR, "删除RAGFlow数据集失败: " + e.getMessage());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.warn("datasetId或ragModelId为空,跳过RAGFlow删除");
|
|
||||||
apiDeleteSuccess = true; // 没有RAG数据集,视为成功
|
|
||||||
}
|
|
||||||
|
|
||||||
// API删除成功后再删除本地记录
|
|
||||||
if (apiDeleteSuccess) {
|
|
||||||
int deleteCount = knowledgeBaseDao.deleteById(id);
|
|
||||||
log.info("本地数据库删除结果: {}", deleteCount > 0 ? "成功" : "失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("=== 删除操作结束 ===");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KnowledgeBaseDTO getByDatasetId(String datasetId) {
|
public KnowledgeBaseDTO getByDatasetId(String datasetId) {
|
||||||
if (StringUtils.isBlank(datasetId)) {
|
if (StringUtils.isBlank(datasetId)) {
|
||||||
@@ -311,6 +260,7 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl<KnowledgeBaseDao,
|
|||||||
log.warn("记录不存在,datasetId: {}", datasetId);
|
log.warn("记录不存在,datasetId: {}", datasetId);
|
||||||
throw new RenException(ErrorCode.Knowledge_Base_RECORD_NOT_EXISTS);
|
throw new RenException(ErrorCode.Knowledge_Base_RECORD_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
|
redisUtils.delete(RedisKeys.getKnowledgeBaseCacheKey(entity.getId()));
|
||||||
|
|
||||||
log.info("找到记录: ID={}, datasetId={}, ragModelId={}",
|
log.info("找到记录: ID={}, datasetId={}, ragModelId={}",
|
||||||
entity.getId(), entity.getDatasetId(), entity.getRagModelId());
|
entity.getId(), entity.getDatasetId(), entity.getRagModelId());
|
||||||
|
|||||||
-2
@@ -37,7 +37,6 @@ import xiaozhi.common.constant.Constant;
|
|||||||
import xiaozhi.common.exception.ErrorCode;
|
import xiaozhi.common.exception.ErrorCode;
|
||||||
import xiaozhi.common.exception.RenException;
|
import xiaozhi.common.exception.RenException;
|
||||||
import xiaozhi.common.page.PageData;
|
import xiaozhi.common.page.PageData;
|
||||||
import xiaozhi.common.redis.RedisUtils;
|
|
||||||
import xiaozhi.modules.knowledge.dto.KnowledgeFilesDTO;
|
import xiaozhi.modules.knowledge.dto.KnowledgeFilesDTO;
|
||||||
import xiaozhi.modules.knowledge.service.KnowledgeFilesService;
|
import xiaozhi.modules.knowledge.service.KnowledgeFilesService;
|
||||||
import xiaozhi.modules.model.dao.ModelConfigDao;
|
import xiaozhi.modules.model.dao.ModelConfigDao;
|
||||||
@@ -51,7 +50,6 @@ public class KnowledgeFilesServiceImpl implements KnowledgeFilesService {
|
|||||||
|
|
||||||
private final ModelConfigService modelConfigService;
|
private final ModelConfigService modelConfigService;
|
||||||
private final ModelConfigDao modelConfigDao;
|
private final ModelConfigDao modelConfigDao;
|
||||||
private final RedisUtils redisUtils;
|
|
||||||
private RestTemplate restTemplate = new RestTemplate();
|
private RestTemplate restTemplate = new RestTemplate();
|
||||||
private ObjectMapper objectMapper = new ObjectMapper();
|
private ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user