tsurumure 5 mesiacov pred
rodič
commit
7cecde39e6

+ 8 - 0
src/main/java/com/backendsys/modules/ai/chat/entity/ChatSseMessage.java

@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
 @Data
 public class ChatSseMessage {
 
+    private String history_code;
     private String content;
     private String content_type;    // (LOADING-加载中, REPLY-回复, REPLY-回复, REPLY_ABORT-回复中止, THINK-思考, THINK_ABORT-思考中止)
     private Long duration;
@@ -22,4 +23,11 @@ public class ChatSseMessage {
         this.duration = duration;
     }
 
+    public ChatSseMessage(String contentType, String content, Long duration, String history_code) {
+        this.content = content;
+        this.content_type = contentType;
+        this.duration = duration;
+        this.history_code = history_code;
+    }
+
 }

+ 2 - 1
src/main/java/com/backendsys/modules/ai/chat/service/impl/ChatServiceImpl.java

@@ -147,7 +147,8 @@ public class ChatServiceImpl implements ChatService {
 
                 ChatResult chatResult = null;
                 // -- [Deepseek R1] -------------------------------------------------------
-                if ("DEEPSEEK_R1".equals(model) || "GEMMA".equals(model)) {
+//                if ("DEEPSEEK_R1".equals(model) || "GEMMA".equals(model)) {
+                if ("OLLAMA".equals(model)) {
                     chatResult = ollamaUtil.chatCompletion(user_id, model_version, prompt, final_history_code, chatList);
                 }
                 // -- [Deepseek Api] ------------------------------------------------------

+ 9 - 9
src/main/java/com/backendsys/modules/sdk/deepseek/utils/OllamaUtil.java

@@ -156,7 +156,7 @@ public class OllamaUtil {
                     System.out.println("---- 开始流式回答: ------------------------------------");
 
                     // [SSE] 发送消息
-                    ChatSseMessage chatLoadingSseMessage = new ChatSseMessage("LOADING", "正在思考");
+                    ChatSseMessage chatLoadingSseMessage = new ChatSseMessage("LOADING", "正在思考", null, history_code);
                     sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatLoadingSseMessage).toJsonStr());
 
                     String line;
@@ -194,9 +194,9 @@ public class OllamaUtil {
                         String errJsonMessage = resJson.getString("error");
                         if (errJsonMessage != null) {
                             // [SSE] 发送消息
-                            sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, new ChatSseMessage("REPLY", errJsonMessage, contentDuration)).toJsonStr());
+                            sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, new ChatSseMessage("REPLY", errJsonMessage, contentDuration, history_code)).toJsonStr());
                             // [SSE] 发送消息 (完成)
-                            sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, new ChatSseMessage("REPLY", "[DONE][REPLY]", contentDuration)).toJsonStr());
+                            sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, new ChatSseMessage("REPLY", "[DONE][REPLY]", contentDuration, history_code)).toJsonStr());
                             //
                             chatResult.setContent(errJsonMessage);
                             return chatResult;
@@ -231,7 +231,7 @@ public class OllamaUtil {
 
                             if (allThinkContent.length() > 0){
                                 // [SSE] 发送消息
-                                ChatSseMessage chatSseMessage = new ChatSseMessage("THINK", "[DONE][THINK]", thinkDuration);
+                                ChatSseMessage chatSseMessage = new ChatSseMessage("THINK", "[DONE][THINK]", thinkDuration, history_code);
                                 sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
                             }
 
@@ -241,7 +241,7 @@ public class OllamaUtil {
                         if (isThinking) {
                             if (!content.contains("<think>") && !content.contains("\n\n") && !content.contains("\n")) {
                                 // [SSE] 发送消息
-                                ChatSseMessage chatSseMessage = new ChatSseMessage("THINK", content);
+                                ChatSseMessage chatSseMessage = new ChatSseMessage("THINK", content, null, history_code);
                                 sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
                                 // 收集推理内容
                                 allThinkContent.append(content);
@@ -259,7 +259,7 @@ public class OllamaUtil {
                                 if (!done) {
 
                                     // [SSE] 发送消息
-                                    ChatSseMessage chatSseMessage = new ChatSseMessage("REPLY", content);
+                                    ChatSseMessage chatSseMessage = new ChatSseMessage("REPLY", content, null, history_code);
                                     sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
                                     // 收集回答内容
                                     allReplyContent.append(content);
@@ -292,7 +292,7 @@ public class OllamaUtil {
                     chatResult.setContent_duration(contentDuration);
 
                     // [SSE] 发送消息 (完成)
-                    ChatSseMessage chatSseMessage = new ChatSseMessage("REPLY", "[DONE][REPLY]", contentDuration);
+                    ChatSseMessage chatSseMessage = new ChatSseMessage("REPLY", "[DONE][REPLY]", contentDuration, history_code);
                     sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
 
                     return chatResult;
@@ -308,7 +308,7 @@ public class OllamaUtil {
                     }
                     // [SSE] 发送消息
                     String contentType = (isThinking ? "THINK_ABORT" : "REPLY_ABORT");
-                    ChatSseMessage chatSseMessage = new ChatSseMessage(contentType, message, contentDuration);
+                    ChatSseMessage chatSseMessage = new ChatSseMessage(contentType, message, contentDuration, history_code);
                     sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
 
 //                    chatResult.setContent(e.getMessage());
@@ -333,7 +333,7 @@ public class OllamaUtil {
                 System.out.println("Exception(2): " + e.getMessage());
                 // [SSE] 发送消息
                 String contentType = (isThinking ? "THINK_ABORT" : "REPLY_ABORT");
-                ChatSseMessage chatSseMessage = new ChatSseMessage(contentType, e.getMessage(), contentDuration);
+                ChatSseMessage chatSseMessage = new ChatSseMessage(contentType, e.getMessage(), contentDuration, history_code);
                 sseUtil.send(user_id, new SseResponse(SseResponseEnum.DEEPSEEK, chatSseMessage).toJsonStr());
 
                 redisUtil.delete(requestOfRedisKey);