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

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