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;