Skip to content

Commit 0ad9b0b

Browse files
authored
Use Optional to check null, and avoid NPE. (#4064)
Fixes #4064 Auto-cherry-pick to 1.0.x Signed-off-by: Mengqi Xu <[email protected]>
1 parent dffec8d commit 0ad9b0b

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

spring-ai-model/src/main/java/org/springframework/ai/chat/model/StreamingChatModel.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.ai.chat.model;
1818

1919
import java.util.Arrays;
20+
import java.util.Optional;
2021

22+
import org.springframework.ai.chat.messages.AssistantMessage;
2123
import reactor.core.publisher.Flux;
2224

2325
import org.springframework.ai.chat.messages.Message;
@@ -29,16 +31,18 @@ public interface StreamingChatModel extends StreamingModel<Prompt, ChatResponse>
2931

3032
default Flux<String> stream(String message) {
3133
Prompt prompt = new Prompt(message);
32-
return stream(prompt).map(response -> (response.getResult() == null || response.getResult().getOutput() == null
33-
|| response.getResult().getOutput().getText() == null) ? ""
34-
: response.getResult().getOutput().getText());
34+
return stream(prompt).map(response -> Optional.ofNullable(response.getResult())
35+
.map(Generation::getOutput)
36+
.map(AssistantMessage::getText)
37+
.orElse(""));
3538
}
3639

3740
default Flux<String> stream(Message... messages) {
3841
Prompt prompt = new Prompt(Arrays.asList(messages));
39-
return stream(prompt).map(response -> (response.getResult() == null || response.getResult().getOutput() == null
40-
|| response.getResult().getOutput().getText() == null) ? ""
41-
: response.getResult().getOutput().getText());
42+
return stream(prompt).map(response -> Optional.ofNullable(response.getResult())
43+
.map(Generation::getOutput)
44+
.map(AssistantMessage::getText)
45+
.orElse(""));
4246
}
4347

4448
@Override

0 commit comments

Comments
 (0)