diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java index cd1c53cb30..b2919cb602 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java @@ -19,6 +19,8 @@ import java.util.ArrayList; import java.util.List; +import org.springframework.ai.chat.prompt.PromptTemplate; +import org.springframework.util.CollectionUtils; import reactor.core.publisher.Flux; import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; @@ -94,7 +96,12 @@ private AdvisedRequest before(AdvisedRequest request) { AdvisedRequest advisedRequest = AdvisedRequest.from(request).messages(advisedMessages).build(); // 4. Add the new user input to the conversation memory. - UserMessage userMessage = new UserMessage(request.userText(), request.media()); + String processedUserText = request.userText(); + if (!CollectionUtils.isEmpty(request.userParams())) { + processedUserText = new PromptTemplate(processedUserText, request.userParams()).render(); + } + UserMessage userMessage = new UserMessage(processedUserText, request.media()); + this.getChatMemoryStore().add(this.doGetConversationId(request.adviseContext()), userMessage); return advisedRequest;