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; 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; } 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(); // 扣除费用 ChatRequest chatRequest = new ChatRequest(); // 设置对话角色 chatRequest.setRole(Message.Role.ASSISTANT.getName()); chatRequest.setModel(modelName); chatRequest.setPrompt(stringBuffer.toString()); chatCostService.deductToken(chatRequest); 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); // 根据模型分类调用不同的处理逻辑