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

This commit is contained in:
ageer
2025-03-28 22:25:32 +08:00
parent 065ff3bed0
commit bd6f8a9558
6 changed files with 30 additions and 18 deletions

View File

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

View File

@@ -9,6 +9,7 @@ import okhttp3.sse.EventSource;
import okhttp3.sse.EventSourceListener; import okhttp3.sse.EventSourceListener;
import org.ruoyi.common.chat.constant.OpenAIConst; import org.ruoyi.common.chat.constant.OpenAIConst;
import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; 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.TextMessage;
import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.WebSocketSession;
@@ -57,7 +58,12 @@ public class WebSocketEventListener extends EventSourceListener {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
// 读取Json // 读取Json
ChatCompletionResponse completionResponse = mapper.readValue(data, ChatCompletionResponse.class); 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)); session.sendMessage(new TextMessage(delta));
} }
@@ -75,18 +81,9 @@ public class WebSocketEventListener extends EventSourceListener {
return; return;
} }
ResponseBody body = response.body(); ResponseBody body = response.body();
if (Objects.nonNull(body)) { if (Objects.nonNull(body)) {
// 返回非流式回复内容 // 返回非流式回复内容
if(response.code() == OpenAIConst.SUCCEED_CODE){ log.error("Socket连接异常data{},异常:{}", body.string(), t);
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);
}
} else { } else {
log.error("Socket连接异常data{},异常:{}", response, t); log.error("Socket连接异常data{},异常:{}", response, t);
} }

View File

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

View File

@@ -30,13 +30,17 @@ public class ChatMessageBo extends BaseEntity {
/** /**
* 用户ID * 用户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 * 累计 Tokens
*/ */
@NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer totalTokens; private Integer totalTokens;
/** /**
* 模型名称 * 模型名称
*/ */
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String modelName; private String modelName;
/** /**
* 备注 * 备注
*/ */
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark; private String remark;
} }

View File

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

View File

@@ -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`;