From f98c8bc665875e1e7795a332d8d0e7fd9e50fda1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 12 三月 2026 11:18:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/ai/service/WcsDiagnosisService.java |   35 +++++------------------------------
 1 files changed, 5 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
index 45dea58..83f0380 100644
--- a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
+++ b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
@@ -5,7 +5,7 @@
 import com.zy.ai.entity.ChatCompletionRequest;
 import com.zy.ai.entity.ChatCompletionResponse;
 import com.zy.ai.entity.WcsDiagnosisRequest;
-import com.zy.ai.mcp.controller.McpController;
+import com.zy.ai.mcp.service.SpringAiMcpToolManager;
 import com.zy.ai.utils.AiPromptUtils;
 import com.zy.ai.utils.AiUtils;
 import com.zy.common.utils.RedisUtil;
@@ -36,7 +36,7 @@
     @Autowired
     private AiUtils aiUtils;
     @Autowired(required = false)
-    private McpController mcpController;
+    private SpringAiMcpToolManager mcpToolManager;
 
     public void diagnoseStream(WcsDiagnosisRequest request, SseEmitter emitter) {
         List<ChatCompletionRequest.Message> messages = new ArrayList<>();
@@ -257,8 +257,8 @@
                                              SseEmitter emitter,
                                              String chatId) {
         try {
-            if (mcpController == null) return false;
-            List<Object> tools = buildOpenAiTools();
+            if (mcpToolManager == null) return false;
+            List<Object> tools = mcpToolManager.buildOpenAiTools();
             if (tools.isEmpty()) return false;
 
             baseMessages.add(systemPrompt);
@@ -303,7 +303,7 @@
                     }
                     Object output;
                     try {
-                        output = mcpController.callTool(toolName, args);
+                        output = mcpToolManager.callTool(toolName, args);
                     } catch (Exception e) {
                         java.util.LinkedHashMap<String, Object> err = new java.util.LinkedHashMap<String, Object>();
                         err.put("tool", toolName);
@@ -386,31 +386,6 @@
         } catch (Exception e) {
             log.warn("SSE send failed", e);
         }
-    }
-
-    private List<Object> buildOpenAiTools() {
-        if (mcpController == null) return java.util.Collections.emptyList();
-        List<Map<String, Object>> mcpTools = mcpController.listTools();
-        if (mcpTools == null || mcpTools.isEmpty()) return java.util.Collections.emptyList();
-
-        List<Object> tools = new ArrayList<>();
-        for (Map<String, Object> t : mcpTools) {
-            if (t == null) continue;
-            Object name = t.get("name");
-            if (name == null) continue;
-            Object inputSchema = t.get("inputSchema");
-            java.util.LinkedHashMap<String, Object> function = new java.util.LinkedHashMap<String, Object>();
-            function.put("name", String.valueOf(name));
-            Object desc = t.get("description");
-            if (desc != null) function.put("description", String.valueOf(desc));
-            function.put("parameters", inputSchema == null ? new java.util.LinkedHashMap<String, Object>() : inputSchema);
-
-            java.util.LinkedHashMap<String, Object> tool = new java.util.LinkedHashMap<String, Object>();
-            tool.put("type", "function");
-            tool.put("function", function);
-            tools.add(tool);
-        }
-        return tools;
     }
 
     private void sendLargeText(SseEmitter emitter, String text) {

--
Gitblit v1.9.1