Skip to content

Commit 5560766

Browse files
fix(bedrock): skip redundant output_config normalization on Converse reasoning_effort path
When reasoning_effort is mapped via _handle_reasoning_effort_parameter, the resulting output_config is already normalized via normalize_bedrock_opus_output_config_effort. Mark it as normalized so _prepare_request_params can skip the redundant call (and the associated get_model_info lookup) on every request. Co-authored-by: Yassin Kortam <[email protected]>
1 parent 355fd04 commit 5560766

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

litellm/llms/bedrock/chat/converse_transformation.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ def _handle_reasoning_effort_parameter(
458458
model=model, effort=mapped_effort
459459
)
460460
optional_params["output_config"] = output_config
461+
optional_params["_output_config_normalized"] = True
461462

462463
@staticmethod
463464
def _validate_anthropic_adaptive_effort(model: str, effort: str) -> None:
@@ -1226,6 +1227,9 @@ def _prepare_request_params(
12261227
# structured-output ``format`` subfield is consumed into Bedrock's
12271228
# native ``outputConfig`` (camelCase), which is handled separately.
12281229
anthropic_output_config = inference_params.pop("output_config", None)
1230+
anthropic_output_config_already_normalized = bool(
1231+
inference_params.pop("_output_config_normalized", False)
1232+
)
12291233
output_config_format = None
12301234
if isinstance(anthropic_output_config, dict):
12311235
anthropic_output_config = dict(anthropic_output_config)
@@ -1322,10 +1326,11 @@ def _prepare_request_params(
13221326
model,
13231327
)
13241328
else:
1325-
normalize_bedrock_opus_output_config_effort(
1326-
model=model,
1327-
output_config=anthropic_output_config,
1328-
)
1329+
if not anthropic_output_config_already_normalized:
1330+
normalize_bedrock_opus_output_config_effort(
1331+
model=model,
1332+
output_config=anthropic_output_config,
1333+
)
13291334
effort = anthropic_output_config.get("effort")
13301335
if effort is not None:
13311336
self._validate_anthropic_adaptive_effort(

0 commit comments

Comments
 (0)