Skip to content

Commit fedbaf1

Browse files
authored
Merge pull request #594 from devoxx/feat-590
Fixed 'broken' user context
2 parents 3114c73 + 4051990 commit fedbaf1

File tree

5 files changed

+9
-38
lines changed

5 files changed

+9
-38
lines changed

src/main/java/com/devoxx/genie/service/prompt/memory/ChatMemoryManager.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -218,26 +218,6 @@ public ChatMemory getChatMemory(String projectHash) {
218218
throw new MemoryException("Failed to get chat memory", e);
219219
}
220220
}
221-
222-
/**
223-
* Logs the current state of the chat memory for debugging purposes
224-
* @param project The project to log memory for
225-
*/
226-
public void logMemoryState(@NotNull Project project) {
227-
try {
228-
List<ChatMessage> messages = getMessages(project);
229-
log.debug("Current memory state for project {}, total messages: {}", project.getName(), messages.size());
230-
231-
for (int i = 0; i < messages.size(); i++) {
232-
ChatMessage message = messages.get(i);
233-
String type = message.getClass().getSimpleName();
234-
String content = message.toString();
235-
log.debug("Message[{}] - Type: {} - Content: {}", i, type, content);
236-
}
237-
} catch (Exception e) {
238-
log.warn("Failed to log memory state: {}", e.getMessage());
239-
}
240-
}
241221

242222
/**
243223
* Restores a conversation from a saved model

src/main/java/com/devoxx/genie/service/prompt/nonstreaming/NonStreamingPromptExecutionService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ public void cancelExecutingQuery() {
166166
.build();
167167
}
168168

169-
// Add extra user message context
170-
MessageCreationService.getInstance().addUserMessageToContext(chatMessageContext);
169+
// The context is already added in AbstractPromptExecutionStrategy.prepareMemory()
171170

172171
if (chatMessageContext.getUserMessage().hasSingleText()) {
173172
String queryResponse = assistant.chat(chatMessageContext.getUserMessage().singleText());

src/main/java/com/devoxx/genie/service/prompt/strategy/AbstractPromptExecutionStrategy.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.devoxx.genie.service.prompt.strategy;
22

33
import com.devoxx.genie.model.request.ChatMessageContext;
4+
import com.devoxx.genie.service.MessageCreationService;
45
import com.devoxx.genie.service.prompt.error.ExecutionException;
56
import com.devoxx.genie.service.prompt.error.PromptErrorHandler;
67
import com.devoxx.genie.service.prompt.memory.ChatMemoryManager;
@@ -86,7 +87,13 @@ protected abstract void executeStrategySpecific(
8687
* @param context The chat message context
8788
*/
8889
protected void prepareMemory(@NotNull ChatMessageContext context) {
90+
// Prepare memory with system message if needed and add user message
91+
log.debug("Before memory preparation - context ID: {}", context.getId());
8992
chatMemoryManager.prepareMemory(context);
93+
// Add context information to the user message before adding to memory
94+
MessageCreationService.getInstance().addUserMessageToContext(context);
95+
// Now add the enriched user message to chat memory
96+
chatMemoryManager.addUserMessage(context);
9097
}
9198

9299
/**

src/main/java/com/devoxx/genie/service/prompt/strategy/NonStreamingPromptStrategy.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,8 @@ protected void executeStrategySpecific(
5555
return;
5656
}
5757

58-
// Prepare memory with system message if needed and add user message
59-
log.debug("Before memory preparation - context ID: {}", context.getId());
60-
chatMemoryManager.logMemoryState(context.getProject());
61-
6258
// Prepare memory and add user message
6359
prepareMemory(context);
64-
chatMemoryManager.addUserMessage(context);
65-
66-
log.debug("After memory preparation - context ID: {}", context.getId());
67-
chatMemoryManager.logMemoryState(context.getProject());
6860

6961
// Execute the prompt using the centralized thread pool
7062
threadPoolManager.getPromptExecutionPool().execute(() -> {

src/main/java/com/devoxx/genie/service/prompt/strategy/StreamingPromptStrategy.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,10 @@ protected void executeStrategySpecific(
5151
return;
5252
}
5353

54-
// Prepare memory and add user prompt
55-
log.debug("Before memory preparation (streaming) - context ID: {}", context.getId());
56-
chatMemoryManager.logMemoryState(context.getProject());
57-
5854
// Prepare memory and add user message
5955
prepareMemory(context);
6056
chatMemoryManager.addUserMessage(context);
61-
62-
log.debug("After memory preparation (streaming) - context ID: {}", context.getId());
63-
chatMemoryManager.logMemoryState(context.getProject());
64-
57+
6558
// Create the streaming handler that will process chunks of response
6659
StreamingResponseHandler handler = new StreamingResponseHandler(
6760
context,

0 commit comments

Comments
 (0)