From 8fc7ad0359ba7c0ce1e144525d1d59f1dc23512e Mon Sep 17 00:00:00 2001 From: ageerle <ageerle@163.com> Date: 星期四, 24 四月 2025 10:31:58 +0800 Subject: [PATCH] feat: mcp开启后才执行工具调用 --- ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) 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 f78ef5c..c2e5ed3 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 @@ -15,6 +15,7 @@ import org.springframework.ai.mcp.SyncMcpToolCallbackProvider; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.util.List; @@ -28,6 +29,10 @@ private IChatModelService chatModelService; private OpenAiStreamClient openAiStreamClient; + + + @Value("${spring.ai.mcp.client.enabled}") + private Boolean enabled; private final ChatClient chatClient; @@ -43,10 +48,12 @@ 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<Message> messages = chatRequest.getMessages(); - messages.add(userMessage); + if (enabled) { + String toolString = mcpChat(chatRequest.getPrompt()); + Message userMessage = Message.builder().content("宸ュ叿杩斿洖淇℃伅锛�"+toolString).role(Message.Role.USER).build(); + messages.add(userMessage); + } SSEEventSourceListener listener = new SSEEventSourceListener(emitter); ChatCompletion completion = ChatCompletion .builder() -- Gitblit v1.9.3