From 8e5472d9529e8759c68299e98d5004cc8aa61e3e Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 15:23:06 +0800
Subject: [PATCH] #AI

---
 src/main/java/com/zy/ai/service/WcsDiagnosisService.java |   84 ++++++++++++++++++++---------------------
 src/main/resources/application.yml                       |    7 ++-
 2 files changed, 46 insertions(+), 45 deletions(-)

diff --git a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
index e5ab278..e3850c6 100644
--- a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
+++ b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
@@ -50,10 +50,9 @@
         );
         messages.add(system);
 
-        // 2. user锛氭妸鍏蜂綋鐨勬暟鎹粍缁囨垚鏂囨湰锛圝SON 褰㈠紡鏂逛究妯″瀷鐪嬬粨鏋勶級
         ChatCompletionRequest.Message user = new ChatCompletionRequest.Message();
         user.setRole("user");
-        user.setContent(buildUserContent(request));
+        user.setContent(buildDiagnosisUserContent(request));
         messages.add(user);
 
         // 璋冪敤澶фā鍨�
@@ -86,47 +85,12 @@
 
         ChatCompletionRequest.Message user = new ChatCompletionRequest.Message();
         user.setRole("user");
-        user.setContent(buildUserContent(request));
+        user.setContent(buildDiagnosisUserContent(request));
         messages.add(user);
 
         llmChatService.chatStream(messages, 0.2, 2048, s -> {
             try {
                 // SSE 鍗忚涓嶅厑璁稿師鏍锋惡甯︽崲琛岋紝鍏堣浆涓� \n 浼犺緭锛屽墠绔啀杩樺師
-                String safe = s == null ? "" : s.replace("\r", "").replace("\n", "\\n");
-                if (!safe.isEmpty()) {
-                    emitter.send(SseEmitter.event().data(safe));
-                }
-            } catch (Exception ignore) {}
-        }, () -> {
-            try { emitter.complete(); } catch (Exception ignore) {}
-        }, e -> {
-            try { emitter.completeWithError(e); } catch (Exception ignore) {}
-        });
-    }
-
-    public void askStream(WcsDiagnosisRequest request, String prompt, SseEmitter emitter) {
-        List<ChatCompletionRequest.Message> messages = new ArrayList<>();
-
-        ChatCompletionRequest.Message system = new ChatCompletionRequest.Message();
-        system.setRole("system");
-        system.setContent(
-                "浣犳槸涓�鍚嶈祫娣� WCS锛堜粨鍌ㄦ帶鍒剁郴缁燂級涓庤嚜鍔ㄥ寲绔嬪簱涓撳锛岀啛鎮夛細鍫嗗灈鏈恒�佽緭閫佺嚎銆佹彁鍗囨満銆佺┛姊溅绛夎澶囩殑浠诲姟鍒嗛厤鍜岃繍琛岄�昏緫锛屼篃鐔熸倝甯歌鐨勭郴缁熷崱姝汇�佷换鍔′笉鎵ц銆佽澶囩┖闂蹭絾鏃犱换鍔$瓑闂妯″紡銆俓n\n" +
-                "鍦ㄥ洖绛旂敤鎴烽棶棰樻椂锛岄渶瑕佺粨鍚堜笅闈㈢粰鍑虹殑绯荤粺褰撳墠涓婁笅鏂囦俊鎭紙浠诲姟銆佽澶囧疄鏃剁姸鎬併�佽澶囬厤缃�佺郴缁熸棩蹇楃瓑锛夛紝浠ョ畝娲併�佹槑纭殑涓枃浣滅瓟锛屽苟鍦ㄩ渶瑕佹椂缁欏嚭鍙墽琛岀殑鎺掓煡寤鸿銆�"
-        );
-        messages.add(system);
-
-        ChatCompletionRequest.Message contextMsg = new ChatCompletionRequest.Message();
-        contextMsg.setRole("user");
-        contextMsg.setContent(buildUserContent(request));
-        messages.add(contextMsg);
-
-        ChatCompletionRequest.Message questionMsg = new ChatCompletionRequest.Message();
-        questionMsg.setRole("user");
-        questionMsg.setContent("銆愮敤鎴锋彁闂�慭n" + (prompt == null ? "" : prompt));
-        messages.add(questionMsg);
-
-        llmChatService.chatStream(messages, 0.2, 2048, s -> {
-            try {
                 String safe = s == null ? "" : s.replace("\r", "").replace("\n", "\\n");
                 if (!safe.isEmpty()) {
                     emitter.send(SseEmitter.event().data(safe));
@@ -178,7 +142,7 @@
 
         ChatCompletionRequest.Message contextMsg = new ChatCompletionRequest.Message();
         contextMsg.setRole("user");
-        contextMsg.setContent(buildUserContent(request));
+        contextMsg.setContent(buildAskUserContent(request));
         base.add(contextMsg);
 
         ChatCompletionRequest.Message questionMsg = new ChatCompletionRequest.Message();
@@ -295,14 +259,12 @@
         return p.length() > 20 ? p.substring(0, 20) : p;
     }
 
-    private String buildUserContent(WcsDiagnosisRequest request) {
+    private String buildDiagnosisUserContent(WcsDiagnosisRequest request) {
         StringBuilder sb = new StringBuilder();
 
-        sb.append("銆愰棶棰樻弿杩般�慭n");
         if (request.getAlarmMessage() != null && !request.getAlarmMessage().isEmpty()) {
+            sb.append("銆愰棶棰樻弿杩般�慭n");
             sb.append(request.getAlarmMessage()).append("\n\n");
-        } else {
-            sb.append("绯荤粺褰撳墠涓嶆墽琛屼换鍔★紝浣嗗叿浣撳師鍥犱笉鏄庯紝璇锋牴鎹互涓嬩俊鎭府鍔╁垽鏂�俓n\n");
         }
 
         sb.append("銆愯澶囦俊鎭�慭n");
@@ -361,4 +323,40 @@
 
         return sb.toString();
     }
+
+    private String buildAskUserContent(WcsDiagnosisRequest request) {
+        StringBuilder sb = new StringBuilder();
+
+        if (request.getExtraContext() != null && !request.getExtraContext().isEmpty()) {
+            sb.append("銆愰澶栦笂涓嬫枃 extraContext銆慭n");
+            sb.append(JSON.toJSONString(request.getExtraContext(), true)).append("\n\n");
+        }
+
+        if (request.getTasks() != null && !request.getTasks().isEmpty()) {
+            sb.append("銆愪换鍔′俊鎭� tasks銆慭n");
+            sb.append("涓嬮潰鏄綋鍓嶇浉鍏充换鍔″垪琛ㄧ殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getTasks(), true)).append("\n\n");
+        }
+
+        if (request.getDeviceRealtimeData() != null && !request.getDeviceRealtimeData().isEmpty()) {
+            sb.append("銆愯澶囧疄鏃舵暟鎹� deviceRealtimeData銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧褰撳墠瀹炴椂鐘舵�佺殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceRealtimeData(), true)).append("\n\n");
+        }
+
+        if (request.getDeviceConfigs() != null && !request.getDeviceConfigs().isEmpty()) {
+            sb.append("銆愯澶囬厤缃俊鎭� deviceConfigs銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧閰嶇疆鐨� JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceConfigs(), true)).append("\n\n");
+        }
+
+        sb.append("銆愮郴缁熸棩蹇� logs锛堟寜鏃堕棿椤哄簭锛夈�慭n");
+        if (request.getLogs() != null && !request.getLogs().isEmpty()) {
+            for (String logLine : request.getLogs()) {
+                sb.append(logLine).append("\n");
+            }
+        }
+
+        return sb.toString();
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 011d12e..eac702e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -68,6 +68,9 @@
   expireDays: 7
 
 llm:
-  base-url: https://api.siliconflow.cn/v1
-  api-key: sk-sxdtebtquwrugzrmaqqqkzdzmrgzhzmplwwuowysdasccent
+#  base-url: https://api.siliconflow.cn/v1
+#  api-key: sk-sxdtebtquwrugzrmaqqqkzdzmrgzhzmplwwuowysdasccent
+#  model: deepseek-ai/DeepSeek-V3.2
+  base-url: http://47.76.147.249:9998/e/7g7kqxxt1ei2un71
+  api-key: app-mP0O6aY5WpbfaHs7BNnjVkli
   model: deepseek-ai/DeepSeek-V3.2

--
Gitblit v1.9.1