mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-11 02:37:06 +00:00
feat: 对话时记录对话角色
This commit is contained in:
@@ -67,6 +67,12 @@ public class ChatRequest {
|
|||||||
*/
|
*/
|
||||||
private String appId;
|
private String appId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对话角色
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上下文的条数
|
* 上下文的条数
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
// 根据模型分类调用不同的处理逻辑
|
// 根据模型分类调用不同的处理逻辑
|
||||||
|
|||||||
Reference in New Issue
Block a user