From 0ee47a5c003ac36061284c7effdb7e893d4948fe Mon Sep 17 00:00:00 2001 From: ageerle Date: Mon, 19 May 2025 16:35:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=B9=E8=AF=9D=E6=97=B6=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=AF=B9=E8=AF=9D=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/ruoyi/common/chat/request/ChatRequest.java | 6 ++++++ .../main/java/org/ruoyi/domain/vo/ChatMessageVo.java | 12 ++++++++++-- .../ruoyi/chat/listener/SSEEventSourceListener.java | 4 +++- .../ruoyi/chat/service/chat/impl/SseServiceImpl.java | 2 ++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java index ed62cb42..167e0a81 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java @@ -67,6 +67,12 @@ public class ChatRequest { */ private String appId; + /** + * 对话角色 + */ + private String role; + + /** * 上下文的条数 */ diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java index 23d092a1..96f291dd 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java @@ -5,14 +5,15 @@ import java.math.BigDecimal; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.ruoyi.domain.ChatMessage; import java.io.Serial; import java.io.Serializable; - - +import java.util.Date; /** @@ -83,4 +84,11 @@ public class ChatMessageVo implements Serializable { private String remark; + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java index 7185d510..485d10fc 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java @@ -12,8 +12,8 @@ import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; import org.jetbrains.annotations.NotNull; import org.ruoyi.chat.service.chat.IChatCostService; -import org.ruoyi.chat.util.SSEUtil; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.core.utils.SpringUtils; import org.ruoyi.common.core.utils.StringUtils; @@ -67,6 +67,8 @@ public class SSEEventSourceListener extends EventSourceListener { emitter.complete(); // 扣除费用 ChatRequest chatRequest = new ChatRequest(); + // 设置对话角色 + chatRequest.setRole(Message.Role.ASSISTANT.getName()); chatRequest.setModel(modelName); chatRequest.setPrompt(stringBuffer.toString()); chatCostService.deductToken(chatRequest); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 741e5ceb..4fa12ee2 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -90,6 +90,8 @@ public class SseServiceImpl implements ISseService { chatRequest.setSessionId(chatSessionBo.getId()); } LocalCache.CACHE.put("sessionId", chatRequest.getSessionId()); + // 设置对话角色 + chatRequest.setRole(Message.Role.USER.getName()); // 保存消息记录 并扣除费用 chatCostService.deductToken(chatRequest); // 根据模型分类调用不同的处理逻辑