|
|
|
@ -13,6 +13,7 @@ import com.supervision.police.domain.Conversation;
|
|
|
|
|
import com.supervision.police.domain.ConversationQa;
|
|
|
|
|
import com.supervision.police.domain.ModelCase;
|
|
|
|
|
import com.supervision.police.domain.ModelIndex;
|
|
|
|
|
import com.supervision.police.dto.AnalyseCaseDTO;
|
|
|
|
|
import com.supervision.police.dto.IndexDetail;
|
|
|
|
|
import com.supervision.police.dto.IndexResultQuery;
|
|
|
|
|
import com.supervision.police.dto.caseScore.CaseScoreDetailDTO;
|
|
|
|
@ -114,13 +115,18 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
if (modelIndices.stream().map(ModelIndex::getName).anyMatch(query::contains)) {
|
|
|
|
|
handleIndexResultQA(modelIndices, query, caseId, answerMap);
|
|
|
|
|
} else if (INTENT_TYPE_TEXT_CASE_RESULT.equals(query) || INTENT_TYPE_CASE_RESULT.equals(intentType)) {
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
if (modelCase.getTotalScore() == null) {
|
|
|
|
|
log.info("案件【{}】尚未执行模型分析,现在开始执行", modelCase.getCaseName());
|
|
|
|
|
AnalyseCaseDTO analyseCaseDTO = new AnalyseCaseDTO();
|
|
|
|
|
analyseCaseDTO.setCaseId(caseId);
|
|
|
|
|
modelService.analyseCaseNew(analyseCaseDTO);
|
|
|
|
|
}
|
|
|
|
|
answerMap = JSON.parseObject(JSON.toJSONString(modelService.caseScoreDetail(caseId)), Map.class);
|
|
|
|
|
} else if (INTENT_TYPE_CASE_OVERVIEW.equals(query) || INTENT_TYPE_CASE_OVERVIEW.equals(intentType)) {
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
answerMap.put("answerText", modelCase.getCaseDetail());
|
|
|
|
|
answerMap.put("answerText", modelCaseService.getById(caseId).getCaseDetail());
|
|
|
|
|
} else if (INTENT_TYPE_CASE_EVIDENCE_GUIDE.equals(query) || INTENT_TYPE_CASE_EVIDENCE_GUIDE.equals(intentType)) {
|
|
|
|
|
CaseScoreDetailDTO caseScoreDetailDTO = modelService.caseScoreDetail(caseId);
|
|
|
|
|
answerMap.put("guideDesc", caseScoreDetailDTO.getGuideDesc());
|
|
|
|
|
answerMap.put("guideDesc", modelService.caseScoreDetail(caseId).getGuideDesc());
|
|
|
|
|
} else {
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
DifyChatReqVO difyChatReqVO = new DifyChatReqVO();
|
|
|
|
@ -144,15 +150,20 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case INTENT_TYPE_CASE_RESULT:
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
if (modelCase.getTotalScore() == null) {
|
|
|
|
|
log.info("案件【{}】尚未执行模型分析,现在开始执行", modelCase.getCaseName());
|
|
|
|
|
AnalyseCaseDTO analyseCaseDTO = new AnalyseCaseDTO();
|
|
|
|
|
analyseCaseDTO.setCaseId(caseId);
|
|
|
|
|
modelService.analyseCaseNew(analyseCaseDTO);
|
|
|
|
|
}
|
|
|
|
|
answerMap = JSON.parseObject(JSON.toJSONString(modelService.caseScoreDetail(caseId)), Map.class);
|
|
|
|
|
break;
|
|
|
|
|
case INTENT_TYPE_CASE_OVERVIEW:
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
answerMap.put("answerText", modelCase.getCaseDetail());
|
|
|
|
|
answerMap.put("answerText", modelCaseService.getById(caseId).getCaseDetail());
|
|
|
|
|
break;
|
|
|
|
|
case INTENT_TYPE_CASE_EVIDENCE_GUIDE:
|
|
|
|
|
CaseScoreDetailDTO caseScoreDetailDTO = modelService.caseScoreDetail(caseId);
|
|
|
|
|
answerMap.put("guideDesc", caseScoreDetailDTO.getGuideDesc());
|
|
|
|
|
answerMap.put("guideDesc", modelService.caseScoreDetail(caseId).getGuideDesc());
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
@ -200,6 +211,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
if (!indexDetailPage.getRecords().isEmpty()) {
|
|
|
|
|
IndexDetail indexDetail = indexDetailPage.getRecords().get(0);
|
|
|
|
|
answerMap.put("indexName", modelIndex.getName());
|
|
|
|
|
answerMap.put("indexType", modelIndex.getIndexType());
|
|
|
|
|
answerMap.put("result", Boolean.parseBoolean(indexDetail.getIndexResult()) ? "符合" : "不符合");
|
|
|
|
|
List<Map<String, String>> qaSplitList = new ArrayList<>();
|
|
|
|
|
if (!indexDetail.getChildren().isEmpty()) {
|
|
|
|
@ -217,17 +229,20 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
answerMap.put("qaSplitList", qaSplitList);
|
|
|
|
|
List<String> evidenceNames = new ArrayList<>();
|
|
|
|
|
List<Map<String, String>> evidenceList = new ArrayList<>();
|
|
|
|
|
if (!indexDetail.getChildren().isEmpty()) {
|
|
|
|
|
indexDetail.getChildren().forEach(atomicIndexDTO -> {
|
|
|
|
|
if (!atomicIndexDTO.getEvidentResultList().isEmpty()) {
|
|
|
|
|
atomicIndexDTO.getEvidentResultList().forEach(evidentIndexResultDTO -> {
|
|
|
|
|
evidenceNames.add(evidentIndexResultDTO.getEvidenceName());
|
|
|
|
|
Map<String, String> evidenceMap = new HashMap<>();
|
|
|
|
|
evidenceMap.put("evidenceName", evidentIndexResultDTO.getEvidenceName());
|
|
|
|
|
evidenceMap.put("evidenceId", evidentIndexResultDTO.getIndexId());
|
|
|
|
|
evidenceList.add(evidenceMap);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
answerMap.put("evidenceNames", evidenceNames);
|
|
|
|
|
answerMap.put("evidenceNames", evidenceList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|