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