diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java index cd1c53cb301..80de4e8d9a3 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/MessageChatMemoryAdvisor.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.List; +import org.springframework.ai.chat.prompt.PromptTemplate; import reactor.core.publisher.Flux; import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; @@ -94,7 +95,8 @@ 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 userMessageText = new PromptTemplate(request.userText(), request.userParams()).render(); + UserMessage userMessage = new UserMessage(userMessageText, request.media()); this.getChatMemoryStore().add(this.doGetConversationId(request.adviseContext()), userMessage); return advisedRequest; diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java index aa709878839..e4ba3b79803 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java @@ -21,6 +21,7 @@ import java.util.Map; import java.util.stream.Collectors; +import org.springframework.ai.chat.prompt.PromptTemplate; import reactor.core.publisher.Flux; import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; @@ -127,7 +128,8 @@ private AdvisedRequest before(AdvisedRequest request) { .build(); // 4. Add the new user input to the conversation memory. - UserMessage userMessage = new UserMessage(request.userText(), request.media()); + String userMessageText = new PromptTemplate(request.userText(), request.userParams()).render(); + UserMessage userMessage = new UserMessage(userMessageText, request.media()); this.getChatMemoryStore().add(this.doGetConversationId(request.adviseContext()), userMessage); return advisedRequest; diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java index bced70c6af2..283339435f9 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java @@ -21,6 +21,7 @@ import java.util.Map; import java.util.stream.Collectors; +import org.springframework.ai.chat.prompt.PromptTemplate; import reactor.core.publisher.Flux; import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; @@ -185,7 +186,8 @@ private AdvisedRequest before(AdvisedRequest request) { .systemParams(advisedSystemParams) .build(); - UserMessage userMessage = new UserMessage(request.userText(), request.media()); + String userMessageText = new PromptTemplate(request.userText(), request.userParams()).render(); + UserMessage userMessage = new UserMessage(userMessageText, request.media()); this.getChatMemoryStore() .write(toDocuments(List.of(userMessage), this.doGetConversationId(request.adviseContext())));