Skip to content

Commit 718f8f0

Browse files
remeiospring-builds
authored andcommitted
Use Optional to check null, and avoid NPE. (#4064)
Fixes #4064 Signed-off-by: Mengqi Xu <[email protected]> (cherry picked from commit 0ad9b0b)
1 parent b3ddb65 commit 718f8f0

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)