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