瀏覽代碼

fix(小程序): 1. 修复小程序一直停留在加载页面 2. 修复小程序无法正常对话

ageer 1 月之前
父節點
當前提交
bd6f8a9558

+ 1 - 1
ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java

@@ -61,7 +61,7 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler {
         }
         ChatCompletion chatCompletion = ChatCompletion
             .builder()
-            .model(ChatCompletion.Model.GPT_3_5_TURBO.getName())
+            .model("gpt-4o-mini")
             .messages(messages)
             .temperature(0.2)
             .stream(true)

+ 8 - 11
ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java

@@ -9,6 +9,7 @@ import okhttp3.sse.EventSource;
 import okhttp3.sse.EventSourceListener;
 import org.ruoyi.common.chat.constant.OpenAIConst;
 import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse;
+import org.ruoyi.common.chat.entity.chat.Message;
 import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 
@@ -57,7 +58,12 @@ public class WebSocketEventListener extends EventSourceListener {
         ObjectMapper mapper = new ObjectMapper();
         // 读取Json
         ChatCompletionResponse completionResponse = mapper.readValue(data, ChatCompletionResponse.class);
-        String delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getDelta());
+        String delta = "";
+        try {
+            delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getDelta());
+        }catch (Exception e){
+            log.error("转换失败{}",e.getMessage());
+        }   
         session.sendMessage(new TextMessage(delta));
     }
 
@@ -75,18 +81,9 @@ public class WebSocketEventListener extends EventSourceListener {
             return;
         }
         ResponseBody body = response.body();
-
-
         if (Objects.nonNull(body)) {
             // 返回非流式回复内容
-            if(response.code() == OpenAIConst.SUCCEED_CODE){
-                ObjectMapper mapper = new ObjectMapper();
-                ChatCompletionResponse completionResponse = mapper.readValue(body.string(), ChatCompletionResponse.class);
-                String delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getMessage().getContent());
-                session.sendMessage(new TextMessage(delta));
-            }else {
-                log.error("Socket连接异常data:{},异常:{}", body.string(), t);
-            }
+            log.error("Socket连接异常data:{},异常:{}", body.string(), t);
         } else {
             log.error("Socket连接异常data:{},异常:{}", response, t);
         }

+ 6 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java

@@ -37,6 +37,12 @@ public class ChatMessage extends BaseEntity {
     @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
     private Long UserId;
 
+    /**
+     * 对话角色
+     */
+    private String role;
+
+
     /**
      * 消息内容
      */

+ 7 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java

@@ -30,13 +30,17 @@ public class ChatMessageBo extends BaseEntity {
     /**
      * 用户ID
      */
-    @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
-    private Long UserId;
+    private Long userId;
 
     /**
      * 用户名称
      */
-    private String UserName;
+    private String userName;
+
+    /**
+     * 对话角色
+     */
+    private String role;
 
     /**
      * 消息内容
@@ -52,19 +56,16 @@ public class ChatMessageBo extends BaseEntity {
     /**
      * 累计 Tokens
      */
-    @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
     private Integer totalTokens;
 
     /**
      * 模型名称
      */
-    @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
     private String modelName;
 
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 }

+ 6 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java

@@ -46,6 +46,12 @@ public class ChatMessageVo implements Serializable {
     @NotBlank(message = "用户名称")
     private String userName;
 
+    /**
+     * 对话角色
+     */
+    private String role;
+
+
     /**
      * 消息内容
      */

+ 2 - 0
script/sql/update/update20250328.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `chat_message`
+    ADD COLUMN `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对话角色' AFTER `content`;