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 role;
/**
* 上下文的条数
*/

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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);
// 根据模型分类调用不同的处理逻辑