mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-31 06:56:59 +00:00
fix(anthropic): hand output_config to the effort helper as a known type
Cast output_config to object before handing it to the explicit effort reader, since a Final[object] annotation still let basedpyright narrow it to Unknown. Expose that reader under a public name, since the Bedrock invoke config calls it from another class.
This commit is contained in:
parent
d25088715d
commit
210e489968
2 changed files with 12 additions and 7 deletions
|
|
@ -1,5 +1,5 @@
|
|||
from collections.abc import AsyncIterator, Mapping, Sequence
|
||||
from typing import ClassVar, Final
|
||||
from typing import ClassVar, Final, cast
|
||||
|
||||
import httpx
|
||||
|
||||
|
|
@ -429,8 +429,10 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig):
|
|||
),
|
||||
status_code=400,
|
||||
)
|
||||
existing_output_config: Final = optional_params.get("output_config")
|
||||
explicit_effort: Final = AnthropicMessagesConfig._explicit_output_config_effort(existing_output_config)
|
||||
existing_output_config: Final = cast( # cast-ok: optional_params is an untyped dict
|
||||
object, optional_params.get("output_config")
|
||||
)
|
||||
explicit_effort: Final = AnthropicMessagesConfig.explicit_output_config_effort(existing_output_config)
|
||||
resolved_effort: Final = (
|
||||
explicit_effort
|
||||
if explicit_effort is not None
|
||||
|
|
@ -446,7 +448,7 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig):
|
|||
)
|
||||
|
||||
@staticmethod
|
||||
def _explicit_output_config_effort(output_config: object) -> str | None:
|
||||
def explicit_output_config_effort(output_config: object) -> str | None:
|
||||
match output_config:
|
||||
case {"effort": str() as effort}:
|
||||
return effort
|
||||
|
|
|
|||
|
|
@ -676,14 +676,17 @@ class AmazonAnthropicClaudeMessagesConfig(
|
|||
clamped: Final = {"effort": effort}
|
||||
normalize_bedrock_opus_output_config_effort(model=model, output_config=clamped)
|
||||
optional_params["reasoning_effort"] = clamped["effort"]
|
||||
explicit_effort: Final = AnthropicMessagesConfig._explicit_output_config_effort(
|
||||
optional_params.get("output_config")
|
||||
explicit_effort: Final = AnthropicMessagesConfig.explicit_output_config_effort(
|
||||
cast(object, optional_params.get("output_config")) # cast-ok: optional_params is an untyped dict
|
||||
)
|
||||
if explicit_effort is None:
|
||||
return
|
||||
clamped_explicit: Final = {"effort": explicit_effort}
|
||||
normalize_bedrock_opus_output_config_effort(model=model, output_config=clamped_explicit)
|
||||
optional_params["output_config"] = {**optional_params["output_config"], **clamped_explicit}
|
||||
optional_params["output_config"] = { # rebind-ok: in-place fill is this method's contract
|
||||
**optional_params["output_config"],
|
||||
**clamped_explicit,
|
||||
}
|
||||
|
||||
def transform_anthropic_messages_request(
|
||||
self,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue