|
|
|
@ -381,15 +381,21 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void initCaseKnowledgeBase(String caseId) {
|
|
|
|
|
public boolean initCaseKnowledgeBase(String caseId) {
|
|
|
|
|
ModelCase modelCase = this.getById(caseId);
|
|
|
|
|
if (StrUtil.isEmpty(modelCase.getKnowledgeBaseId())){
|
|
|
|
|
log.info("案件:{} 尚未创建知识库,即将创建知识库库...",modelCase.getCaseName());
|
|
|
|
|
// 防止名称超长,在这里统一采用案件id 作为知识库名称
|
|
|
|
|
String caseDetail = modelCase.getCaseDetail();
|
|
|
|
|
if (StrUtil.length(caseDetail) > 400){
|
|
|
|
|
caseDetail = StrUtil.sub(caseDetail,0,400);
|
|
|
|
|
log.info("案件:{} 描述内容太长,已截取前400个字符",modelCase.getCaseName());
|
|
|
|
|
}
|
|
|
|
|
String knowledgeBaseId = difyApiUtil.createDataset(
|
|
|
|
|
StrUtil.join("_", modelCase.getCaseName(), modelCase.getCaseNo()), modelCase.getCaseDetail());
|
|
|
|
|
StrUtil.join("_", "case", modelCase.getId()), caseDetail);
|
|
|
|
|
if (StrUtil.isEmpty(knowledgeBaseId)){
|
|
|
|
|
log.error("案件:{} 创建知识库失败...",modelCase.getCaseName());
|
|
|
|
|
return;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
modelCase.setKnowledgeBaseId(knowledgeBaseId);
|
|
|
|
|
modelCaseMapper.updateById(modelCase);
|
|
|
|
@ -400,12 +406,13 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
|
|
|
|
|
|
|
|
|
|
if (null == modelCase.getCaseAnalysisSuccessTime()){
|
|
|
|
|
log.info("案件:{} 尚未完成案件分析,不进行笔录上传...",modelCase.getCaseName());
|
|
|
|
|
return;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
log.info("案件:{} 开始上传笔录到知识库...",modelCase.getCaseName());
|
|
|
|
|
difyApiUtil.syncCaseFileToDifyKnowledgeBase(modelCase,this.listCaseFileIds(caseId));
|
|
|
|
|
log.info("案件:{} 上传笔录到知识库成功...",modelCase.getCaseName());
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -421,16 +428,20 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
|
|
|
|
|
try {
|
|
|
|
|
log.info("开始迁移案件:{} 笔录到知识库,当前总体进度:{}...",modelCase.getCaseName(),NumberUtil.formatPercent((success + fail)/(allModelCase.size()*1.0), 2));
|
|
|
|
|
timer.start(modelCase.getId());
|
|
|
|
|
initCaseKnowledgeBase(modelCase.getId());
|
|
|
|
|
log.info("案件:{} 迁移笔录到知识库成功,耗时:{}秒...",modelCase.getCaseName(),timer.intervalSecond(modelCase.getId()));
|
|
|
|
|
success++;
|
|
|
|
|
boolean ok = initCaseKnowledgeBase(modelCase.getId());
|
|
|
|
|
if (ok){
|
|
|
|
|
success++;
|
|
|
|
|
log.info("案件:{} 迁移笔录到知识库成功,耗时:{}秒...",modelCase.getCaseName(),timer.intervalSecond(modelCase.getId()));
|
|
|
|
|
}else {
|
|
|
|
|
fail++;
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("案件:{} 迁移笔录到知识库失败..",modelCase.getCaseName(),e);
|
|
|
|
|
fail++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.info("===========>>>>>迁移笔录到知识库完成,成功个数:{},失败个数:{},总耗时:{}秒...<<<<<===========",success,allModelCase.size()-success,timer.intervalSecond());
|
|
|
|
|
log.info("===========>>>>>迁移笔录到知识库完成,成功个数:{},失败个数:{},总耗时:{}秒...<<<<<===========",success,fail,timer.intervalSecond());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|