Skip to content

Commit 92a37e4

Browse files
committed
fix: ai message should not be save to db for chat after interview
1 parent f0ddaa8 commit 92a37e4

File tree

1 file changed

+11
-7
lines changed
  • service-application/src/main/java/de/tum/devops/application/service

1 file changed

+11
-7
lines changed

service-application/src/main/java/de/tum/devops/application/service/ChatService.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void onCompleted() {
136136
logger.info("NormalQA stream completed for session {}.", sessionId);
137137
fullAiResponse.append("\n").append(endingMessage);
138138
try {
139-
ChatMessage finalMessage = saveFinalAiMessage(session.getSessionId(), fullAiResponse.toString());
139+
ChatMessage finalMessage = saveFinalAiMessage(session.getSessionId(), fullAiResponse.toString(), false);
140140
emitter.send(SseEmitter.event().name("message-chunk").data("\n").data(endingMessage));
141141
emitter.send(SseEmitter.event().name("stream-end").data(new ChatMessageDto(finalMessage)));
142142
} catch (IOException ignored) {
@@ -196,7 +196,7 @@ public void onCompleted() {
196196
logger.info("AI stream completed for session {}.", sessionId);
197197
try {
198198
// Save the final message and get the entity back
199-
ChatMessage finalMessage = saveFinalAiMessage(session.getSessionId(), fullAiResponse.toString());
199+
ChatMessage finalMessage = saveFinalAiMessage(session.getSessionId(), fullAiResponse.toString(), true);
200200
// Send the final, complete DTO
201201
emitter.send(SseEmitter.event().name("stream-end").data(new ChatMessageDto(finalMessage)));
202202
emitter.complete();
@@ -249,7 +249,7 @@ public PreparedSession prepareForStreaming(UUID sessionId, String content, UUID
249249
}
250250

251251
@Transactional
252-
public ChatMessage saveFinalAiMessage(UUID sessionId, String content) {
252+
public ChatMessage saveFinalAiMessage(UUID sessionId, String content, boolean isSaveToDB) {
253253
ChatSession session = chatSessionRepository.findById(sessionId)
254254
.orElseThrow(() -> new IllegalArgumentException("Chat session not found during final save."));
255255

@@ -259,12 +259,16 @@ public ChatMessage saveFinalAiMessage(UUID sessionId, String content) {
259259
aiMessage.setSession(session);
260260
aiMessage.setSender(MessageSender.AI);
261261
aiMessage.setContent(content);
262-
chatMessageRepository.save(aiMessage);
262+
if (isSaveToDB) {
263+
chatMessageRepository.save(aiMessage);
263264

264-
Integer aiMessageCount = session.getMessageCount();
265-
session.setMessageCount(aiMessageCount + 1);
265+
Integer aiMessageCount = session.getMessageCount();
266+
session.setMessageCount(aiMessageCount + 1);
266267

267-
chatSessionRepository.save(session);
268+
chatSessionRepository.save(session);
269+
} else {
270+
aiMessage.setSentAt(LocalDateTime.now());
271+
}
268272
return aiMessage;
269273
}
270274

0 commit comments

Comments
 (0)