feat: 对话时记录对话角色

This commit is contained in:
ageerle
2025-05-19 16:35:21 +08:00
parent 3ceef41ab0
commit 0ee47a5c00
4 changed files with 21 additions and 3 deletions

View File

@@ -67,6 +67,12 @@ public class ChatRequest {
*/ */
private String appId; private String appId;
/**
* 对话角色
*/
private String role;
/** /**
* 上下文的条数 * 上下文的条数
*/ */

View File

@@ -5,14 +5,15 @@ import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; 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 io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.ruoyi.domain.ChatMessage; import org.ruoyi.domain.ChatMessage;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
@@ -83,4 +84,11 @@ public class ChatMessageVo implements Serializable {
private String remark; private String remark;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
} }

View File

@@ -12,8 +12,8 @@ import okhttp3.sse.EventSource;
import okhttp3.sse.EventSourceListener; import okhttp3.sse.EventSourceListener;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.ruoyi.chat.service.chat.IChatCostService; 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.ChatCompletionResponse;
import org.ruoyi.common.chat.entity.chat.Message;
import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.request.ChatRequest;
import org.ruoyi.common.core.utils.SpringUtils; import org.ruoyi.common.core.utils.SpringUtils;
import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.core.utils.StringUtils;
@@ -67,6 +67,8 @@ public class SSEEventSourceListener extends EventSourceListener {
emitter.complete(); emitter.complete();
// 扣除费用 // 扣除费用
ChatRequest chatRequest = new ChatRequest(); ChatRequest chatRequest = new ChatRequest();
// 设置对话角色
chatRequest.setRole(Message.Role.ASSISTANT.getName());
chatRequest.setModel(modelName); chatRequest.setModel(modelName);
chatRequest.setPrompt(stringBuffer.toString()); chatRequest.setPrompt(stringBuffer.toString());
chatCostService.deductToken(chatRequest); chatCostService.deductToken(chatRequest);

View File

@@ -90,6 +90,8 @@ public class SseServiceImpl implements ISseService {
chatRequest.setSessionId(chatSessionBo.getId()); chatRequest.setSessionId(chatSessionBo.getId());
} }
LocalCache.CACHE.put("sessionId", chatRequest.getSessionId()); LocalCache.CACHE.put("sessionId", chatRequest.getSessionId());
// 设置对话角色
chatRequest.setRole(Message.Role.USER.getName());
// 保存消息记录 并扣除费用 // 保存消息记录 并扣除费用
chatCostService.deductToken(chatRequest); chatCostService.deductToken(chatRequest);
// 根据模型分类调用不同的处理逻辑 // 根据模型分类调用不同的处理逻辑