mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-30 06:43:27 +00:00
* fix(anthropic): treat adaptive thinking as enabled when mapping response_format is_thinking_enabled only recognised thinking.type=enabled, so a request that paired thinking.type=adaptive with response_format took the synthetic JSON tool path with a forced tool_choice, which Anthropic rejects alongside thinking. The same check also gates the Bedrock Converse and Databricks forced tool_choice downgrades, so they now see adaptive thinking too. * fix(anthropic): keep signed thinking blocks with empty text on chat completions Models that default to display: omitted return signed thinking blocks whose text is empty, and Anthropic rejects the next turn when they are not replayed unchanged. is_unsignable_thinking_block dropped them along with unsigned blocks, and the inline content path required non-empty text, so a tool-use turn on Opus 4.7+ or the 5 families lost its thinking blocks and 400ed on the tool-result turn. Only a missing signature now drops a block, and the mid-conversation system placement mirrors that rule. The /v1/messages strip helper is left to #41362. * fix(anthropic): skip the thinking-strip retry when block_binding asks for an error The /v1/messages retry loop strips thinking blocks and resends on any invalid-thinking 400, including the binding mismatch a caller opted into with thinking.block_binding.prefix_mismatch_behavior: error. The retry decision now sees the request body and surfaces that 400 instead of overriding the caller's choice. #42888 covers the litellm_params side. * fix(bedrock): carry thinking.block_binding through the Invoke thinking rebuilds Bedrock Invoke rebuilt the thinking param from scratch when display: updates was requested, on both the /v1/messages and chat completions paths, and the legacy enabled-to-adaptive translation plus the clear_thinking injection did the same, so thinking.block_binding never reached Bedrock. Every rebuild now spreads the caller's thinking and only overrides the keys it owns, and AnthropicThinkingParam types block_binding. The thinking-binding-controls beta was already on the Bedrock allowlist. * fix(anthropic): keep forcing the response_format tool under adaptive thinking This reverts |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_aiohttp_cleanup_closed.py | ||
| test_aiohttp_handler.py | ||
| test_aiohttp_so_keepalive.py | ||
| test_aiohttp_transport.py | ||
| test_asgi_handler.py | ||
| test_async_client_cleanup.py | ||
| test_container_handler.py | ||
| test_credential_leak_prevention.py | ||
| test_gemini_session_leak.py | ||
| test_http_handler.py | ||
| test_llm_http_handler.py | ||
| test_mock_transport.py | ||