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