fix: guard against None thinking param for reasoning_effort=none (fixes #25792)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Yiyang Liu <37043548+ianliuy@users.noreply.github.com>
This commit is contained in:
Yiyang Liu 2026-04-16 14:14:21 -07:00
parent c0fc4c4234
commit d0b05b16df
No known key found for this signature in database
3 changed files with 9 additions and 3 deletions

View file

@ -1088,9 +1088,11 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig):
elif param == "thinking":
optional_params["thinking"] = value
elif param == "reasoning_effort" and isinstance(value, str):
optional_params["thinking"] = AnthropicConfig._map_reasoning_effort(
thinking = AnthropicConfig._map_reasoning_effort(
reasoning_effort=value, model=model
)
if thinking is not None:
optional_params["thinking"] = thinking
# For Claude 4.6+ models, effort is controlled via output_config,
# not thinking budget_tokens. Map reasoning_effort to output_config.
if AnthropicConfig._is_claude_4_6_model(

View file

@ -449,9 +449,11 @@ class AmazonConverseConfig(BaseConfig):
optional_params.update(reasoning_config)
else:
# Anthropic and other models: convert to thinking parameter
optional_params["thinking"] = AnthropicConfig._map_reasoning_effort(
thinking = AnthropicConfig._map_reasoning_effort(
reasoning_effort=reasoning_effort, model=model
)
if thinking is not None:
optional_params["thinking"] = thinking
@staticmethod
def _clamp_thinking_budget_tokens(optional_params: dict) -> None:

View file

@ -330,9 +330,11 @@ class DatabricksConfig(DatabricksBase, OpenAILikeChatConfig, AnthropicConfig):
) # unsupported for claude models - if json_schema -> convert to tool call
if "reasoning_effort" in non_default_params and "claude" in model:
optional_params["thinking"] = AnthropicConfig._map_reasoning_effort(
thinking = AnthropicConfig._map_reasoning_effort(
reasoning_effort=non_default_params.get("reasoning_effort"), model=model
)
if thinking is not None:
optional_params["thinking"] = thinking
optional_params.pop("reasoning_effort", None)
## handle thinking tokens
self.update_optional_params_with_thinking_tokens(