|
21 | 21 | import java.util.Map; |
22 | 22 | import java.util.stream.Collectors; |
23 | 23 |
|
| 24 | +import org.springframework.util.StringUtils; |
24 | 25 | import reactor.core.publisher.Flux; |
25 | 26 |
|
26 | 27 | import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; |
|
33 | 34 | import org.springframework.ai.chat.messages.MessageType; |
34 | 35 | import org.springframework.ai.chat.messages.UserMessage; |
35 | 36 | import org.springframework.ai.chat.model.MessageAggregator; |
36 | | -import org.springframework.ai.content.Content; |
37 | 37 |
|
38 | 38 | /** |
39 | 39 | * Memory is retrieved added into the prompt's system text. |
@@ -111,14 +111,16 @@ private AdvisedRequest before(AdvisedRequest request) { |
111 | 111 |
|
112 | 112 | String memory = (memoryMessages != null) ? memoryMessages.stream() |
113 | 113 | .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()) |
115 | 115 | .collect(Collectors.joining(System.lineSeparator())) : ""; |
116 | 116 |
|
117 | 117 | Map<String, Object> advisedSystemParams = new HashMap<>(request.systemParams()); |
118 | 118 | advisedSystemParams.put("memory", memory); |
119 | 119 |
|
120 | 120 | // 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; |
122 | 124 |
|
123 | 125 | // 3. Create a new request with the advised system text and parameters. |
124 | 126 | AdvisedRequest advisedRequest = AdvisedRequest.from(request) |
|
0 commit comments