From 6de20911a9cdb064e60030237747c0794d429656 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 19 六月 2025 15:01:33 +0800
Subject: [PATCH] 修改调度建议相关接口

---
 iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/chat/AiChatMessageServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/chat/AiChatMessageServiceImpl.java b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/chat/AiChatMessageServiceImpl.java
index 0083759..7d40cf0 100644
--- a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/chat/AiChatMessageServiceImpl.java
+++ b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/chat/AiChatMessageServiceImpl.java
@@ -9,10 +9,8 @@
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.tenant.core.util.TenantUtils;
-import com.iailab.module.ai.controller.admin.chat.vo.message.AiChatMessagePageReqVO;
-import com.iailab.module.ai.controller.admin.chat.vo.message.AiChatMessageRespVO;
-import com.iailab.module.ai.controller.admin.chat.vo.message.AiChatMessageSendReqVO;
-import com.iailab.module.ai.controller.admin.chat.vo.message.AiChatMessageSendRespVO;
+import com.iailab.module.ai.controller.admin.chat.vo.message.*;
+import com.iailab.module.ai.controller.admin.schedulesuggest.vo.ScheduleSuggestSaveReqVO;
 import com.iailab.module.ai.dal.dataobject.chat.AiChatConversationDO;
 import com.iailab.module.ai.dal.dataobject.chat.AiChatMessageDO;
 import com.iailab.module.ai.dal.dataobject.knowledge.AiKnowledgeDocumentDO;
@@ -28,8 +26,10 @@
 import com.iailab.module.ai.service.model.AiChatRoleService;
 import com.iailab.module.ai.service.model.AiModelService;
 import com.iailab.module.ai.service.model.AiToolService;
+import com.iailab.module.ai.service.schedulesuggest.ScheduleSuggestService;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.MessageType;
 import org.springframework.ai.chat.messages.SystemMessage;
@@ -45,6 +45,8 @@
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -86,6 +88,8 @@
     private AiKnowledgeDocumentService knowledgeDocumentService;
     @Resource
     private AiToolService toolService;
+    @Resource
+    private ScheduleSuggestService scheduleSuggestService;
 
     @Transactional(rollbackFor = Exception.class)
     public AiChatMessageSendRespVO sendMessage(AiChatMessageSendReqVO sendReqVO, Long userId) {
@@ -129,6 +133,19 @@
                             .getKnowledgeDocument(segment.getDocumentId());
                     segment.setDocumentName(document != null ? document.getName() : null);
                 });
+        // 3.5 存储大模型推断结论
+        if(model.getType().equals(6)) {
+            String scheduleSuggest = getScheduleSuggest(newContent);
+            if(ObjectUtils.isNotEmpty(scheduleSuggest)) {
+                ScheduleSuggestSaveReqVO saveReqVO = new ScheduleSuggestSaveReqVO();
+                saveReqVO.setModelId(model.getId())
+                        .setConversationId(conversation.getId())
+                        .setMessageId(assistantMessage.getId())
+                        .setCreateTime(assistantMessage.getCreateTime())
+                        .setContent(scheduleSuggest);
+                scheduleSuggestService.createScheduleSuggest(saveReqVO);
+            }
+        }
         return new AiChatMessageSendRespVO()
                 .setSend(BeanUtils.toBean(userMessage, AiChatMessageSendRespVO.Message.class))
                 .setReceive(BeanUtils.toBean(assistantMessage, AiChatMessageSendRespVO.Message.class)
@@ -314,6 +331,11 @@
     }
 
     @Override
+    public PageResult<AiChatMessageDO> getChatMessagePageByConversationId(AiChatMessageReqVO reqVO) {
+        return chatMessageMapper.selectPageByConversationId(reqVO);
+    }
+
+    @Override
     public List<AiChatMessageDO> getChatMessageListByConversationId(Long conversationId) {
         return chatMessageMapper.selectListByConversationId(conversationId);
     }
@@ -361,4 +383,14 @@
         return chatMessageMapper.selectPage(pageReqVO);
     }
 
+    private String getScheduleSuggest(String content) {
+        String spliceText = content.contains("总结:") ? "总结:" : "结论:";
+        String regex = "^([\\s\\S]*?)" + spliceText + "([\\s\\S]*)$";
+        Pattern pattern = java.util.regex.Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(content);
+        if (matcher.find()) {
+            return matcher.group(2).trim();
+        }
+        return "";
+    }
 }

--
Gitblit v1.9.3