|
|
|
@ -50,6 +50,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
private final ConversationQaService conversationQaService;
|
|
|
|
|
private final ModelIndexService modelIndexService;
|
|
|
|
|
private final DifyApiUtil difyApiUtil;
|
|
|
|
|
private final NoteRecordService noteRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -115,7 +116,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
List<ModelIndex> modelIndices = modelIndexService.list();
|
|
|
|
|
switch (type) {
|
|
|
|
|
case QA_TYPE_DIFY:
|
|
|
|
|
if (modelIndices.stream().map(ModelIndex::getName).anyMatch(query::contains)) {
|
|
|
|
|
if (modelIndices.stream().map(ModelIndex::getName).anyMatch(query::equals)) {
|
|
|
|
|
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);
|
|
|
|
@ -146,7 +147,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
case QA_TYPE_NX_LLM:
|
|
|
|
|
switch (intentType) {
|
|
|
|
|
case INTENT_TYPE_INDEX_RESULT:
|
|
|
|
|
if (modelIndices.stream().map(ModelIndex::getName).anyMatch(query::contains)) {
|
|
|
|
|
if (modelIndices.stream().map(ModelIndex::getName).anyMatch(query::equals)) {
|
|
|
|
|
handleIndexResultQA(modelIndices, query, caseId, answerMap);
|
|
|
|
|
} else {
|
|
|
|
|
answerMap.put("answerText", "暂无相关指标信息");
|
|
|
|
@ -180,7 +181,8 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
qa.setId(UUID.randomUUID().toString());
|
|
|
|
|
qa.setQuestion(query);
|
|
|
|
|
qa.setQuestionTime(new Date(startTime));
|
|
|
|
|
qa.setAnswer(JSON.toJSONString(answerMap));
|
|
|
|
|
qa.setAnswer(chatResVO.getAnswer());
|
|
|
|
|
qa.setAnswerMap(JSON.toJSONString(answerMap));
|
|
|
|
|
qa.setAnswerTime(new Date(end));
|
|
|
|
|
qa.setType(type);
|
|
|
|
|
qa.setIntentType(intentType);
|
|
|
|
@ -189,7 +191,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
qa.setUserId(userId);
|
|
|
|
|
qa.setConversationId(chatReqVO.getConversationId());
|
|
|
|
|
conversationQaService.save(qa);
|
|
|
|
|
log.info("QA已保存,qaId:{}", qa.getId());
|
|
|
|
|
log.info("QA已保存,qaId:【{}】,question:【{}】,answer:【{}】", qa.getId(), query, JSON.toJSONString(answerMap));
|
|
|
|
|
chatResVO.setAnswwerMap(answerMap);
|
|
|
|
|
chatResVO.setType(type);
|
|
|
|
|
chatResVO.setIntentType(intentType);
|
|
|
|
@ -257,6 +259,7 @@ public class ChatServiceImpl implements ChatService {
|
|
|
|
|
qaMap.put("question", split.getQuestion());
|
|
|
|
|
qaMap.put("answer", split.getAnswer());
|
|
|
|
|
qaMap.put("noteRecordId", split.getNoteRecordId());
|
|
|
|
|
qaMap.put("fileIds", noteRecordService.getById(split.getNoteRecordId()).getFileIds());
|
|
|
|
|
qaMap.put("noteRecordName", split.getNoteName());
|
|
|
|
|
qaSplitList.add(qaMap);
|
|
|
|
|
});
|
|
|
|
|