From 5783c5bd19290eed6d87ba966506d64c61654f1f Mon Sep 17 00:00:00 2001 From: Robby Zhao Date: Fri, 27 Dec 2024 22:47:55 +0800 Subject: [PATCH] Refactor getContentFromChatResponse method to use Optional for null handling --- .../ai/chat/client/DefaultChatClient.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java index aec1d2f15..2f9d6ee92 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Consumer; @@ -48,11 +49,13 @@ import org.springframework.ai.chat.client.observation.ChatClientObservationConte import org.springframework.ai.chat.client.observation.ChatClientObservationConvention; import org.springframework.ai.chat.client.observation.ChatClientObservationDocumentation; import org.springframework.ai.chat.client.observation.DefaultChatClientObservationConvention; +import org.springframework.ai.chat.messages.AbstractMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.model.ChatModel; import org.springframework.ai.chat.model.ChatResponse; +import org.springframework.ai.chat.model.Generation; import org.springframework.ai.chat.model.StreamingChatModel; import org.springframework.ai.chat.model.ToolContext; import org.springframework.ai.chat.prompt.ChatOptions; @@ -493,11 +496,11 @@ public class DefaultChatClient implements ChatClient { @Nullable private static String getContentFromChatResponse(@Nullable ChatResponse chatResponse) { - if (chatResponse == null || chatResponse.getResult() == null || chatResponse.getResult().getOutput() == null - || chatResponse.getResult().getOutput().getText() == null) { - return null; - } - return chatResponse.getResult().getOutput().getText(); + return Optional.ofNullable(chatResponse) + .map(ChatResponse::getResult) + .map(Generation::getOutput) + .map(AbstractMessage::getText) + .orElse(null); } @Override