From b846e9c168c9fc2465d3d25929d10de1978c569d Mon Sep 17 00:00:00 2001 From: yaxin Date: Tue, 3 Dec 2024 09:25:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/police/domain/ConversationQa.java | 5 +++++ .../police/service/impl/ChatServiceImpl.java | 11 +++++++---- .../java/com/supervision/police/vo/ChatResVO.java | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/supervision/police/domain/ConversationQa.java b/src/main/java/com/supervision/police/domain/ConversationQa.java index 4a04460..1f3ad18 100644 --- a/src/main/java/com/supervision/police/domain/ConversationQa.java +++ b/src/main/java/com/supervision/police/domain/ConversationQa.java @@ -49,6 +49,11 @@ public class ConversationQa implements Serializable { */ private String answer; + /** + * + */ + private String answerMap; + /** * */ diff --git a/src/main/java/com/supervision/police/service/impl/ChatServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ChatServiceImpl.java index 8cb5a8e..7492371 100644 --- a/src/main/java/com/supervision/police/service/impl/ChatServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ChatServiceImpl.java @@ -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 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); }); diff --git a/src/main/java/com/supervision/police/vo/ChatResVO.java b/src/main/java/com/supervision/police/vo/ChatResVO.java index 87da635..2dc190b 100644 --- a/src/main/java/com/supervision/police/vo/ChatResVO.java +++ b/src/main/java/com/supervision/police/vo/ChatResVO.java @@ -49,8 +49,8 @@ public class ChatResVO { this.setId(conversationQa.getId()); this.setQuestion(conversationQa.getQuestion()); this.setAnswer(conversationQa.getAnswer()); - if (StrUtil.isNotEmpty(conversationQa.getAnswer())){ - this.answwerMap = JSONUtil.toBean(conversationQa.getAnswer(), Map.class); + if (StrUtil.isNotEmpty(conversationQa.getAnswerMap())){ + this.answwerMap = JSONUtil.toBean(conversationQa.getAnswerMap(), Map.class); } this.setType(conversationQa.getType()); this.setQuestionTime(conversationQa.getQuestionTime());