diff --git a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java index dfa402674..c79b611dc 100644 --- a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java +++ b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java @@ -70,6 +70,7 @@ import reactor.core.publisher.Mono; * @author luocongqiu * @author Mariusz Bernacki * @author Thomas Vitale + * @author Claudio Silva Junior * @since 1.0.0 */ public class AnthropicChatModel extends AbstractToolCallSupport implements ChatModel { @@ -293,6 +294,12 @@ public class AnthropicChatModel extends AbstractToolCallSupport implements ChatM List allGenerations = new ArrayList<>(generations); + if (chatCompletion.stopReason() != null && generations.isEmpty()) { + Generation generation = new Generation(new AssistantMessage(null, Map.of()), + ChatGenerationMetadata.from(chatCompletion.stopReason(), null)); + allGenerations.add(generation); + } + List toolToUseList = chatCompletion.content() .stream() .filter(c -> c.type() == ContentBlock.Type.TOOL_USE) diff --git a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelObservationIT.java b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelObservationIT.java index d01de8ee0..e257d8a4f 100644 --- a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelObservationIT.java +++ b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelObservationIT.java @@ -118,7 +118,7 @@ public class AnthropicChatModelObservationIT { ChatResponseMetadata responseMetadata = lastChatResponse.getMetadata(); assertThat(responseMetadata).isNotNull(); - validate(responseMetadata, KeyValue.NONE_VALUE); + validate(responseMetadata, "[\"end_turn\"]"); } private void validate(ChatResponseMetadata responseMetadata, String finishReasons) {