You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The application is failing to process responses from Claude 3.7 Sonnet when using the thinking parameter. We're encountering a JSON parsing exception because Spring AI's Anthropic client doesn't recognize the thinking content block type in the streaming response.
Error Details
java.lang.RuntimeException: Failed to json: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
Root cause:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'thinking' as a subtype of `org.springframework.ai.anthropic.api.AnthropicApi$ContentBlockStartEvent$ContentBlockBody`: known type ids = [text, tool_use]
My Code
val optionsBuilder = AnthropicChatOptions.builder().model(model).temperature(temperature)
if (thinking) {
optionsBuilder.thinking(AnthropicApi.ThinkingType.ENABLED, 16000)
optionsBuilder.maxTokens(24192)
optionsBuilder.temperature(1.0)
}
val prompt = Prompt(messages, optionsBuilder.build())
return this.chatClient.prompt(prompt).stream().content().collectList().awaitSingle()
.joinToString(separator = "")
Where client is
private val chatClient: ChatClient = ChatClient.create(chatModel)
Steps to Reproduce
Configure Spring AI with Anthropic client using Claude 3.7 model
Enable the "thinking" parameter in AnthropicChatOptions using optionsBuilder.thinking(AnthropicApi.ThinkingType.ENABLED, 16000)
Send a request to the model
Expected Behavior
The Spring AI Anthropic client should properly parse and handle the "thinking" content block type in the streaming response.
Environment
Claude model: claude-3-7-sonnet-20250219
Java version: 21
Possible Solution
Update the type registry in Spring AI's Anthropic client to include the "thinking" content block type as a recognized subtype of ContentBlockBody. This likely requires adding a class to handle this block type and updating the Jackson deserializer configuration.
The text was updated successfully, but these errors were encountered:
Description
The application is failing to process responses from Claude 3.7 Sonnet when using the
thinking
parameter. We're encountering a JSON parsing exception because Spring AI's Anthropic client doesn't recognize thethinking
content block type in the streaming response.Error Details
Root cause:
My Code
Where client is
Steps to Reproduce
AnthropicChatOptions
usingoptionsBuilder.thinking(AnthropicApi.ThinkingType.ENABLED, 16000)
Expected Behavior
The Spring AI Anthropic client should properly parse and handle the "thinking" content block type in the streaming response.
Environment
Possible Solution
Update the type registry in Spring AI's Anthropic client to include the "thinking" content block type as a recognized subtype of
ContentBlockBody
. This likely requires adding a class to handle this block type and updating the Jackson deserializer configuration.The text was updated successfully, but these errors were encountered: