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