From 0ee47a5c003ac36061284c7effdb7e893d4948fe Mon Sep 17 00:00:00 2001
From: ageerle <ageerle@163.com>
Date: 星期一, 19 五月 2025 16:35:21 +0800
Subject: [PATCH] feat: 对话时记录对话角色

---
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java |    6 ++++++
 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java |    2 ++
 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java       |   12 ++++++++++--
 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java  |    4 +++-
 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 ed62cb4..167e0a8 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
@@ -68,6 +68,12 @@
     private String appId;
 
     /**
+     * 瀵硅瘽瑙掕壊
+     */
+    private String role;
+
+
+    /**
      * 涓婁笅鏂囩殑鏉℃暟
      */
     private Integer contentNumber = 10;
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 23d092a..96f291d 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 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 @@
     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 7185d51..485d10f 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.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 @@
                 emitter.complete();
                 // 鎵i櫎璐圭敤
                 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 741e5ce..4fa12ee 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 @@
                 chatRequest.setSessionId(chatSessionBo.getId());
             }
             LocalCache.CACHE.put("sessionId", chatRequest.getSessionId());
+            // 璁剧疆瀵硅瘽瑙掕壊
+            chatRequest.setRole(Message.Role.USER.getName());
             // 淇濆瓨娑堟伅璁板綍 骞舵墸闄よ垂鐢�
             chatCostService.deductToken(chatRequest);
             // 鏍规嵁妯″瀷鍒嗙被璋冪敤涓嶅悓鐨勫鐞嗛�昏緫

--
Gitblit v1.9.3