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

---
 src/main/java/com/zy/ai/service/WcsDiagnosisService.java |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
index 7c10893..757e877 100644
--- a/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
+++ b/src/main/java/com/zy/ai/service/WcsDiagnosisService.java
@@ -2,11 +2,13 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.zy.ai.entity.AiPromptTemplate;
 import com.zy.ai.entity.ChatCompletionRequest;
 import com.zy.ai.entity.ChatCompletionResponse;
 import com.zy.ai.entity.WcsDiagnosisRequest;
+import com.zy.ai.enums.AiPromptScene;
 import com.zy.ai.mcp.service.SpringAiMcpToolManager;
-import com.zy.ai.utils.AiPromptUtils;
+import com.zy.ai.service.AiPromptTemplateService;
 import com.zy.ai.utils.AiUtils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.enums.RedisKeyType;
@@ -32,24 +34,25 @@
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
-    private AiPromptUtils aiPromptUtils;
-    @Autowired
     private AiUtils aiUtils;
     @Autowired
     private SpringAiMcpToolManager mcpToolManager;
+    @Autowired
+    private AiPromptTemplateService aiPromptTemplateService;
 
     public void diagnoseStream(WcsDiagnosisRequest request, SseEmitter emitter) {
         List<ChatCompletionRequest.Message> messages = new ArrayList<>();
+        AiPromptTemplate promptTemplate = aiPromptTemplateService.resolvePublished(AiPromptScene.DIAGNOSE_STREAM.getCode());
 
         ChatCompletionRequest.Message mcpSystem = new ChatCompletionRequest.Message();
         mcpSystem.setRole("system");
-        mcpSystem.setContent(aiPromptUtils.getAiDiagnosePromptMcp());
+        mcpSystem.setContent(promptTemplate.getContent());
 
         ChatCompletionRequest.Message mcpUser = new ChatCompletionRequest.Message();
         mcpUser.setRole("user");
         mcpUser.setContent(aiUtils.buildDiagnosisUserContentMcp(request));
 
-        runMcpStreamingDiagnosis(messages, mcpSystem, mcpUser, 0.3, 2048, emitter, null);
+        runMcpStreamingDiagnosis(messages, mcpSystem, mcpUser, promptTemplate, 0.3, 2048, emitter, null);
     }
 
     public void askStream(String prompt,
@@ -81,16 +84,17 @@
         }
 
         final String finalChatId = chatId;
+        AiPromptTemplate promptTemplate = aiPromptTemplateService.resolvePublished(AiPromptScene.SENSOR_CHAT.getCode());
 
         ChatCompletionRequest.Message mcpSystem = new ChatCompletionRequest.Message();
         mcpSystem.setRole("system");
-        mcpSystem.setContent(aiPromptUtils.getWcsSensorPromptMcp());
+        mcpSystem.setContent(promptTemplate.getContent());
 
         ChatCompletionRequest.Message mcpUser = new ChatCompletionRequest.Message();
         mcpUser.setRole("user");
         mcpUser.setContent("銆愮敤鎴锋彁闂�慭n" + (prompt == null ? "" : prompt));
 
-        runMcpStreamingDiagnosis(messages, mcpSystem, mcpUser, 0.3, 2048, emitter, finalChatId);
+        runMcpStreamingDiagnosis(messages, mcpSystem, mcpUser, promptTemplate, 0.3, 2048, emitter, finalChatId);
     }
 
     public List<Map<String, Object>> listChats() {
@@ -161,6 +165,7 @@
     private void runMcpStreamingDiagnosis(List<ChatCompletionRequest.Message> baseMessages,
                                           ChatCompletionRequest.Message systemPrompt,
                                           ChatCompletionRequest.Message userQuestion,
+                                          AiPromptTemplate promptTemplate,
                                           Double temperature,
                                           Integer maxTokens,
                                           SseEmitter emitter,
@@ -272,6 +277,12 @@
                         Map<String, Object> meta = new java.util.HashMap<>();
                         meta.put("chatId", chatId);
                         meta.put("title", buildTitleFromPrompt(userQuestion.getContent()));
+                        if (promptTemplate != null) {
+                            meta.put("promptTemplateId", promptTemplate.getId());
+                            meta.put("promptSceneCode", promptTemplate.getSceneCode());
+                            meta.put("promptVersion", promptTemplate.getVersion());
+                            meta.put("promptName", promptTemplate.getName());
+                        }
                         meta.put("createdAt", createdAt);
                         meta.put("updatedAt", System.currentTimeMillis());
                         redisUtil.hmset(metaKey, meta, CHAT_TTL_SECONDS);

--
Gitblit v1.9.1