From 223e25540ce906c24dbc9029b1fa8007ef67c08a Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Mon, 22 Apr 2024 13:01:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E8=B0=83=E6=95=B4Qanything=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/controller/KGController.java | 2 +- .../java/com/supervision/service/KGService.java | 3 +++ .../supervision/service/impl/KGServiceImpl.java | 15 +++++++++++++++ .../java/com/supervision/vo/kg/ChatReqVo.java | 5 +++++ .../java/com/supervision/vo/kg/ChatResVo.java | 7 +++++++ 5 files changed, 31 insertions(+), 1 deletion(-) diff --git a/kbqa-graph/src/main/java/com/supervision/controller/KGController.java b/kbqa-graph/src/main/java/com/supervision/controller/KGController.java index ec2046f..cc1c706 100644 --- a/kbqa-graph/src/main/java/com/supervision/controller/KGController.java +++ b/kbqa-graph/src/main/java/com/supervision/controller/KGController.java @@ -34,7 +34,7 @@ public class KGController { @PostMapping("/chat") public ChatResVo chat(@RequestBody ChatReqVo chatReqVo) throws NoSuchAlgorithmException { - return kgService.chat(chatReqVo.getQuestion()); + return kgService.chat(chatReqVo); } @ApiOperation("qanythingChat问答对话-调试用") diff --git a/kbqa-graph/src/main/java/com/supervision/service/KGService.java b/kbqa-graph/src/main/java/com/supervision/service/KGService.java index 8bd9c2c..d337090 100644 --- a/kbqa-graph/src/main/java/com/supervision/service/KGService.java +++ b/kbqa-graph/src/main/java/com/supervision/service/KGService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.supervision.model.KgInfo; import com.supervision.qanything.dto.ChatResult; +import com.supervision.vo.kg.ChatReqVo; import com.supervision.vo.kg.ChatResVo; import com.supervision.vo.kg.UploadDocResVo; import org.springframework.web.multipart.MultipartFile; @@ -16,6 +17,8 @@ import java.security.NoSuchAlgorithmException; public interface KGService { ChatResVo chat(String question) throws NoSuchAlgorithmException; + ChatResVo chat(ChatReqVo chatReqVo) throws NoSuchAlgorithmException; + IPage hotKG(Page page); diff --git a/kbqa-graph/src/main/java/com/supervision/service/impl/KGServiceImpl.java b/kbqa-graph/src/main/java/com/supervision/service/impl/KGServiceImpl.java index 178e43b..123e089 100644 --- a/kbqa-graph/src/main/java/com/supervision/service/impl/KGServiceImpl.java +++ b/kbqa-graph/src/main/java/com/supervision/service/impl/KGServiceImpl.java @@ -17,6 +17,7 @@ import com.supervision.qanything.dto.UploadResult; import com.supervision.service.GeBytearrayService; import com.supervision.service.KGService; import com.supervision.service.KgInfoService; +import com.supervision.vo.kg.ChatReqVo; import com.supervision.vo.kg.ChatResVo; import com.supervision.vo.kg.SourceKgInfo; import com.supervision.vo.kg.UploadDocResVo; @@ -75,6 +76,20 @@ public class KGServiceImpl implements KGService { return chatResVo; } + @Override + public ChatResVo chat(ChatReqVo chatReqVo) throws NoSuchAlgorithmException { + ChatResVo chat = this.chat(chatReqVo.getQuestion()); + if (!chat.isSuccess() + ||CollUtil.isEmpty(chat.getSourceKgInfoList()) + || StrUtil.isBlank(chatReqVo.getLabel())){ + return chat; + } + List sourceKgInfoList = chat.getSourceKgInfoList().stream() + .filter(sourceKgInfo -> chatReqVo.getLabel().equals(sourceKgInfo.getLabel())).collect(Collectors.toList()); + chat.setSourceKgInfoList(sourceKgInfoList); + return chat; + } + private List qaSource2SourceKgInfo(List sourceDTOList){ List sourceKgInfoList = CollUtil.newArrayList(); if (CollUtil.isEmpty(sourceDTOList)){ diff --git a/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatReqVo.java b/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatReqVo.java index f043a7b..6069449 100644 --- a/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatReqVo.java +++ b/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatReqVo.java @@ -6,4 +6,9 @@ import lombok.Data; public class ChatReqVo { private String question; + + /** + * 标签 1:知识探索 2:通知 3:办事指南 4:政策解读 5:政策法规 6: 意见 + */ + private String label; } diff --git a/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatResVo.java b/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatResVo.java index 906a059..50f473b 100644 --- a/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatResVo.java +++ b/kbqa-graph/src/main/java/com/supervision/vo/kg/ChatResVo.java @@ -8,12 +8,19 @@ import java.util.List; @Data public class ChatResVo { + private boolean success = true; + private String response; List sourceKgInfoList; + public boolean isSuccess() { + return success; + } + public static ChatResVo makeError() { ChatResVo chatResVo = new ChatResVo(); + chatResVo.success = false; chatResVo.response = "未查询到相关信息"; chatResVo.sourceKgInfoList = new ArrayList<>(); return chatResVo;