mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-12 19:17:20 +00:00
fix(小程序): 1. 修复小程序一直停留在加载页面 2. 修复小程序无法正常对话
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消息内容
|
* 消息内容
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,12 @@ public class ChatMessageVo implements Serializable {
|
|||||||
@NotBlank(message = "用户名称")
|
@NotBlank(message = "用户名称")
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对话角色
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消息内容
|
* 消息内容
|
||||||
*/
|
*/
|
||||||
|
|||||||
2
script/sql/update/update20250328.sql
Normal file
2
script/sql/update/update20250328.sql
Normal 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`;
|
||||||
Reference in New Issue
Block a user