Skip to content

Commit 1fbac6b

Browse files
committed
fix null systemText in PromptChatMemoryAdvisor
Signed-off-by: Miloš Havránek <[email protected]>
1 parent fbec267 commit 1fbac6b

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Map;
2222
import java.util.stream.Collectors;
2323

24+
import org.springframework.util.StringUtils;
2425
import reactor.core.publisher.Flux;
2526

2627
import org.springframework.ai.chat.client.advisor.api.AdvisedRequest;
@@ -33,7 +34,6 @@
3334
import org.springframework.ai.chat.messages.MessageType;
3435
import org.springframework.ai.chat.messages.UserMessage;
3536
import org.springframework.ai.chat.model.MessageAggregator;
36-
import org.springframework.ai.content.Content;
3737

3838
/**
3939
* Memory is retrieved added into the prompt's system text.
@@ -111,14 +111,16 @@ private AdvisedRequest before(AdvisedRequest request) {
111111

112112
String memory = (memoryMessages != null) ? memoryMessages.stream()
113113
.filter(m -> m.getMessageType() == MessageType.USER || m.getMessageType() == MessageType.ASSISTANT)
114-
.map(m -> m.getMessageType() + ":" + ((Content) m).getText())
114+
.map(m -> m.getMessageType() + ":" + m.getText())
115115
.collect(Collectors.joining(System.lineSeparator())) : "";
116116

117117
Map<String, Object> advisedSystemParams = new HashMap<>(request.systemParams());
118118
advisedSystemParams.put("memory", memory);
119119

120120
// 2. Advise the system text.
121-
String advisedSystemText = request.systemText() + System.lineSeparator() + this.systemTextAdvise;
121+
String systemText = request.systemText();
122+
String advisedSystemText = (StringUtils.hasText(systemText) ? systemText + System.lineSeparator() : "")
123+
+ this.systemTextAdvise;
122124

123125
// 3. Create a new request with the advised system text and parameters.
124126
AdvisedRequest advisedRequest = AdvisedRequest.from(request)

0 commit comments

Comments
 (0)