Skip to content

Commit 744e475

Browse files
committed
perf(ai-client-chat): optimize message processing in MemoryAdvisor
- Replace stream-based instruction processing with a for loop - Improve readability and performance by avoiding unnecessary stream operations Signed-off-by: Ahoo Wang <[email protected]>
1 parent 6af739a commit 744e475

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,18 @@ public ChatClientRequest before(ChatClientRequest chatClientRequest, AdvisorChai
8686
List<Message> memoryMessages = this.chatMemory.get(conversationId);
8787

8888
// 2. Advise the request messages list.
89-
SystemMessage systemMessage = chatClientRequest.prompt().getSystemMessage();
9089
List<Message> processedMessages = new ArrayList<>();
90+
SystemMessage systemMessage = chatClientRequest.prompt().getSystemMessage();
9191
if (StringUtils.hasText(systemMessage.getText())) {
9292
processedMessages.add(systemMessage);
9393
}
9494
processedMessages.addAll(memoryMessages);
95-
List<Message> instructions = chatClientRequest.prompt()
96-
.getInstructions()
97-
.stream()
98-
.filter(m -> m.getMessageType() != MessageType.SYSTEM)
99-
.toList();
100-
processedMessages.addAll(instructions);
101-
95+
// Add non-system messages from instructions
96+
for (Message message : chatClientRequest.prompt().getInstructions()) {
97+
if (message.getMessageType() != MessageType.SYSTEM) {
98+
processedMessages.add(message);
99+
}
100+
}
102101
// 3. Create a new request with the advised messages.
103102
ChatClientRequest processedChatClientRequest = chatClientRequest.mutate()
104103
.prompt(chatClientRequest.prompt().mutate().messages(processedMessages).build())

0 commit comments

Comments
 (0)