From 15c306eca21ec956275ab66a3e4f6610db908565 Mon Sep 17 00:00:00 2001 From: ageerle Date: Tue, 22 Apr 2025 11:28:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A0=B9=E6=8D=AE=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E5=9E=8B=E6=9E=84=E5=BB=BA=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java | 7 +++++++ .../org/ruoyi/chat/service/chat/impl/SseServiceImpl.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index 6f7f977a..f78ef5cb 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -2,12 +2,15 @@ package org.ruoyi.chat.service.chat.impl; import io.modelcontextprotocol.client.McpSyncClient; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.config.ChatConfig; import org.ruoyi.chat.listener.SSEEventSourceListener; import org.ruoyi.chat.service.chat.IChatService; import org.ruoyi.common.chat.entity.chat.ChatCompletion; import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.mcp.SyncMcpToolCallbackProvider; import org.springframework.ai.openai.OpenAiChatOptions; @@ -22,6 +25,8 @@ import java.util.List; public class OpenAIServiceImpl implements IChatService { @Autowired + private IChatModelService chatModelService; + private OpenAiStreamClient openAiStreamClient; private final ChatClient chatClient; @@ -36,6 +41,8 @@ public class OpenAIServiceImpl implements IChatService { @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); String toolString = mcpChat(chatRequest.getPrompt()); Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.USER).build(); List messages = chatRequest.getMessages(); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index c011d504..f5b14b5f 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -71,7 +71,7 @@ public class SseServiceImpl implements ISseService { @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { - SseEmitter sseEmitter = new SseEmitter(); + SseEmitter sseEmitter = new SseEmitter(0L); try { // 构建消息列表 buildChatMessageList(chatRequest);