From 82624affb0251b75b62b35567d3eb260c06efe78 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 23 三月 2026 12:48:07 +0800
Subject: [PATCH] #ai 代码优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java |   88 ++-----------------------------------------
 1 files changed, 5 insertions(+), 83 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
index 398efba..da7c1d6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
@@ -4,6 +4,7 @@
 import com.vincent.rsf.server.ai.config.AiDefaults;
 import com.vincent.rsf.server.ai.dto.AiMcpToolPreviewDto;
 import com.vincent.rsf.server.ai.entity.AiMcpMount;
+import com.vincent.rsf.server.ai.service.impl.mcp.BuiltinMcpToolCatalogProvider;
 import com.vincent.rsf.server.ai.service.BuiltinMcpToolRegistry;
 import com.vincent.rsf.server.ai.tool.RsfWmsBaseTools;
 import com.vincent.rsf.server.ai.tool.RsfWmsStockTools;
@@ -27,6 +28,7 @@
     private final RsfWmsStockTools rsfWmsStockTools;
     private final RsfWmsTaskTools rsfWmsTaskTools;
     private final RsfWmsBaseTools rsfWmsBaseTools;
+    private final BuiltinMcpToolCatalogProvider builtinMcpToolCatalogProvider;
 
     /**
      * 鏍¢獙鍐呯疆 MCP 缂栫爜鏄惁鍚堟硶銆�
@@ -38,7 +40,7 @@
         if (!StringUtils.hasText(builtinCode)) {
             throw new CoolException("鍐呯疆 MCP 缂栫爜涓嶈兘涓虹┖");
         }
-        if (!supportedBuiltinCodes().contains(builtinCode)) {
+        if (!builtinMcpToolCatalogProvider.supportedBuiltinCodes().contains(builtinCode)) {
             throw new CoolException("涓嶆敮鎸佺殑鍐呯疆 MCP 缂栫爜: " + builtinCode);
         }
     }
@@ -68,10 +70,7 @@
     @Override
     public List<AiMcpToolPreviewDto> listBuiltinToolCatalog(String builtinCode) {
         validateBuiltinCode(builtinCode);
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
-            return new ArrayList<>(catalogByBuiltinCode(builtinCode).values());
-        }
-        return new ArrayList<>(catalogByBuiltinCode(builtinCode).values());
+        return new ArrayList<>(builtinMcpToolCatalogProvider.getCatalog(builtinCode).values());
     }
 
     private List<ToolCallback> createValidatedCallbacks(Object toolBean, String builtinCode) {
@@ -81,7 +80,7 @@
          * 2. 姣忎釜宸ュ叿閮藉繀椤诲嚭鐜板湪娌荤悊鐩綍閲�
          */
         List<ToolCallback> callbacks = Arrays.asList(ToolCallbacks.from(toolBean));
-        Map<String, AiMcpToolPreviewDto> catalog = catalogByBuiltinCode(builtinCode);
+        Map<String, AiMcpToolPreviewDto> catalog = builtinMcpToolCatalogProvider.getCatalog(builtinCode);
         for (ToolCallback callback : callbacks) {
             if (callback == null || callback.getToolDefinition() == null) {
                 continue;
@@ -97,81 +96,4 @@
         return callbacks;
     }
 
-    private List<String> supportedBuiltinCodes() {
-        /** 褰撳墠鐗堟湰鍏佽鎸傝浇鐨勫叏閮ㄥ唴缃� MCP 缂栫爜銆� */
-        return List.of(AiDefaults.MCP_BUILTIN_RSF_WMS);
-    }
-
-    private Map<String, AiMcpToolPreviewDto> catalogByBuiltinCode(String builtinCode) {
-        /**
-         * 鏋勯�犲唴缃伐鍏锋不鐞嗙洰褰曘��
-         * 杩欓噷鐨勭洰褰曟槸杩愯鏃舵牎楠屽拰绠$悊绔瑙堢殑鍏卞悓浜嬪疄鏉ユ簮锛屼笉鑳戒笌宸ュ叿瀹炵幇鑴辫妭銆�
-         */
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
-            Map<String, AiMcpToolPreviewDto> catalog = new LinkedHashMap<>();
-            catalog.put("rsf_query_available_inventory", buildCatalogItem(
-                    "rsf_query_available_inventory",
-                    "搴撳瓨鏌ヨ",
-                    "鏌ヨ鎸囧畾鐗╂枡褰撳墠鍙敤浜庡嚭搴撶殑搴撳瓨鏄庣粏銆�",
-                    "蹇呴』鎻愪緵鐗╂枡缂栫爜鎴栫墿鏂欏悕绉帮紝骞朵笖鏈�澶氳繑鍥� 50 鏉″簱瀛樿褰曘��",
-                    List.of("鏌ヨ鐗╂枡 MAT001 褰撳墠鍙嚭搴撳簱瀛�", "鎸夌墿鏂欏悕绉版煡璇㈡墭鐩樺簱瀛樻槑缁�")
-            ));
-            catalog.put("rsf_query_station_list", buildCatalogItem(
-                    "rsf_query_station_list",
-                    "搴撳瓨鏌ヨ",
-                    "鏌ヨ鎸囧畾浣滀笟绫诲瀷鍙敤鐨勮澶囩珯鐐广��",
-                    "蹇呴』鎻愪緵绔欑偣绫诲瀷鍒楄〃锛岀被鍨嬫暟閲忔渶澶� 10 涓紝鏈�澶氳繑鍥� 50 涓珯鐐广��",
-                    List.of("鏌ヨ鍏ュ簱鍜屽嚭搴撲綔涓氬彲鐢ㄧ珯鐐�", "鍒楀嚭 AGV_PICK 绫诲瀷鐨勪綔涓氱珯鐐�")
-            ));
-            catalog.put("rsf_query_task_list", buildCatalogItem(
-                    "rsf_query_task_list",
-                    "浠诲姟鏌ヨ",
-                    "鎸変换鍔″彿銆佺姸鎬併�佺被鍨嬫垨绔欑偣鏉′欢鏌ヨ浠诲姟鍒楄〃銆�",
-                    "鑷冲皯鎻愪緵涓�涓繃婊ゆ潯浠讹紝鏈�澶氳繑鍥� 50 鏉′换鍔¤褰曪紝涓嶆敮鎸佸叏琛ㄦ壂鎻忋��",
-                    List.of("鏌ヨ鏈�杩� 10 鏉$姸鎬佷负鎵ц涓殑浠诲姟", "鎸変换鍔″彿鍏抽敭瀛楁煡璇换鍔″垪琛�")
-            ));
-            catalog.put("rsf_query_task_detail", buildCatalogItem(
-                    "rsf_query_task_detail",
-                    "浠诲姟鏌ヨ",
-                    "鎸変换鍔� ID 鎴栦换鍔″彿鏌ヨ鍗曚釜浠诲姟璇︽儏銆�",
-                    "蹇呴』鎻愪緵浠诲姟 ID 鎴栦换鍔″彿涔嬩竴锛屽彧杩斿洖鍗曚釜浠诲姟銆�",
-                    List.of("鏌ヨ浠诲姟 12345 鐨勮鎯�", "鏍规嵁浠诲姟鍙� TASK24001 鏌ョ湅鎵ц鏄庣粏")
-            ));
-            catalog.put("rsf_query_warehouses", buildCatalogItem(
-                    "rsf_query_warehouses",
-                    "鍩虹璧勬枡",
-                    "鏌ヨ浠撳簱鍩虹淇℃伅銆�",
-                    "鑷冲皯鎻愪緵浠撳簱缂栫爜鎴栧悕绉帮紝鏈�澶氳繑鍥� 50 鏉′粨搴撹褰曘��",
-                    List.of("鏌ヨ缂栫爜鍖呭惈 WH 鐨勪粨搴�", "鎸変粨搴撳悕绉版煡璇粨搴撳湴鍧�")
-            ));
-            catalog.put("rsf_query_bas_stations", buildCatalogItem(
-                    "rsf_query_bas_stations",
-                    "鍩虹璧勬枡",
-                    "鏌ヨ鍩虹绔欑偣淇℃伅銆�",
-                    "鑷冲皯鎻愪緵绔欑偣缂栧彿銆佺珯鐐瑰悕绉版垨浣跨敤鐘舵�佷箣涓�锛屾渶澶氳繑鍥� 50 鏉$珯鐐硅褰曘��",
-                    List.of("鏌ヨ浣跨敤涓殑鍩虹绔欑偣", "鎸夌珯鐐圭紪鍙锋煡璇㈠熀纭�绔欑偣")
-            ));
-            catalog.put("rsf_query_dict_data", buildCatalogItem(
-                    "rsf_query_dict_data",
-                    "鍩虹璧勬枡",
-                    "鏌ヨ鎸囧畾瀛楀吀绫诲瀷涓嬬殑瀛楀吀鏁版嵁銆�",
-                    "蹇呴』鎻愪緵瀛楀吀绫诲瀷缂栫爜锛屾渶澶氳繑鍥� 100 鏉″瓧鍏歌褰曘��",
-                    List.of("鏌ヨ task_status 瀛楀吀", "鎸夊瓧鍏告爣绛捐繃婊� task_type 瀛楀吀鏁版嵁")
-            ));
-            return catalog;
-        }
-        throw new CoolException("涓嶆敮鎸佺殑鍐呯疆 MCP 缂栫爜: " + builtinCode);
-    }
-
-    private AiMcpToolPreviewDto buildCatalogItem(String name, String toolGroup, String toolPurpose,
-                                                 String queryBoundary, List<String> exampleQuestions) {
-        /** 缁熶竴鍒涘缓宸ュ叿鐩綍鏉$洰锛岄伩鍏嶄笉鍚屽伐鍏风粍鍑虹幇瀛楁椋庢牸涓嶄竴鑷淬�� */
-        return AiMcpToolPreviewDto.builder()
-                .name(name)
-                .toolGroup(toolGroup)
-                .toolPurpose(toolPurpose)
-                .queryBoundary(queryBoundary)
-                .exampleQuestions(exampleQuestions)
-                .build();
-    }
 }

--
Gitblit v1.9.1