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                        |   31 +++++++++++++++++++++++++++++++
 iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/schedulesuggest/vo/ScheduleSuggestSaveReqVO.java |    5 ++++-
 iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/schedulesuggest/ScheduleSuggestDO.java             |    3 ---
 3 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/schedulesuggest/vo/ScheduleSuggestSaveReqVO.java b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/schedulesuggest/vo/ScheduleSuggestSaveReqVO.java
index b56c03c..656f4fd 100644
--- a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/schedulesuggest/vo/ScheduleSuggestSaveReqVO.java
+++ b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/schedulesuggest/vo/ScheduleSuggestSaveReqVO.java
@@ -4,6 +4,8 @@
 import lombok.*;
 import jakarta.validation.constraints.*;
 
+import java.time.LocalDateTime;
+
 @Schema(description = "管理后台 - 大模型调度建议新增/修改 Request VO")
 @Data
 public class ScheduleSuggestSaveReqVO {
@@ -27,7 +29,8 @@
     private String content;
 
     @Schema(description = "状态(0-未处理 1-已采纳 2-已忽略)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @NotNull(message = "状态(0-未处理 1-已采纳 2-已忽略)不能为空")
     private Integer status;
 
+    private LocalDateTime createTime;
+
 }
\ No newline at end of file
diff --git a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/schedulesuggest/ScheduleSuggestDO.java b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/schedulesuggest/ScheduleSuggestDO.java
index 486bc97..83f56f9 100644
--- a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/schedulesuggest/ScheduleSuggestDO.java
+++ b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/schedulesuggest/ScheduleSuggestDO.java
@@ -1,9 +1,6 @@
 package com.iailab.module.ai.dal.dataobject.schedulesuggest;
 
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
 
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 2c5b680..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
@@ -10,6 +10,7 @@
 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.*;
+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;
@@ -25,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;
@@ -42,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;
@@ -83,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) {
@@ -126,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)
@@ -362,4 +382,15 @@
     public PageResult<AiChatMessageDO> getChatMessagePage(AiChatMessagePageReqVO pageReqVO) {
         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