mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-17 04:34:25 +00:00
refactor(anthropic): keep drop params immutable
Signed-off-by: Hasnaat Hussain <hasnaat.hussain.2@gmail.com>
This commit is contained in:
parent
610b1201f3
commit
13bb1b6cfc
1 changed files with 22 additions and 21 deletions
|
|
@ -7,8 +7,9 @@
|
|||
|
||||
import asyncio
|
||||
import contextvars
|
||||
from collections.abc import AsyncIterator, Coroutine, Iterator
|
||||
from collections.abc import AsyncIterator, Coroutine, Iterator, Mapping, Sequence
|
||||
from functools import partial
|
||||
from types import MappingProxyType
|
||||
from typing import Any, Final, cast
|
||||
|
||||
import litellm
|
||||
|
|
@ -421,30 +422,30 @@ def validate_anthropic_api_metadata(metadata: dict | None = None) -> dict | None
|
|||
|
||||
|
||||
def _drop_unsupported_anthropic_messages_params(
|
||||
anthropic_messages_optional_request_params: dict,
|
||||
anthropic_messages_optional_request_params: Mapping[str, Any],
|
||||
model: str,
|
||||
custom_llm_provider: str | None,
|
||||
additional_drop_params: list[str] | None = None,
|
||||
) -> dict:
|
||||
additional_drop_params: Sequence[str] | None = None,
|
||||
) -> Mapping[str, Any]:
|
||||
from litellm.llms.anthropic.chat.transformation import AnthropicConfig
|
||||
from litellm.utils import _should_drop_param
|
||||
|
||||
additional_drop_params = additional_drop_params or []
|
||||
for k in list(anthropic_messages_optional_request_params.keys()):
|
||||
if _should_drop_param(k, additional_drop_params):
|
||||
anthropic_messages_optional_request_params.pop(k, None)
|
||||
|
||||
if not AnthropicConfig._model_supports_effort_param(model, custom_llm_provider or "anthropic"):
|
||||
anthropic_messages_optional_request_params.pop("output_config", None)
|
||||
if not AnthropicConfig._supports_model_capability(model, "supports_reasoning", custom_llm_provider or "anthropic"):
|
||||
anthropic_messages_optional_request_params.pop("thinking", None)
|
||||
if (
|
||||
"context_management" in anthropic_messages_optional_request_params
|
||||
and custom_llm_provider in ["vertex_ai", "bedrock"]
|
||||
and "haiku" in model.lower()
|
||||
):
|
||||
anthropic_messages_optional_request_params.pop("context_management", None)
|
||||
return anthropic_messages_optional_request_params
|
||||
additional_drop_params_list: Final = additional_drop_params if isinstance(additional_drop_params, list) else None
|
||||
supports_effort: Final = AnthropicConfig._model_supports_effort_param(model, custom_llm_provider or "anthropic")
|
||||
supports_reasoning: Final = AnthropicConfig._supports_model_capability(
|
||||
model, "supports_reasoning", custom_llm_provider or "anthropic"
|
||||
)
|
||||
drop_context_management: Final = custom_llm_provider in ["vertex_ai", "bedrock"] and "haiku" in model.lower()
|
||||
return MappingProxyType(
|
||||
{
|
||||
k: v
|
||||
for k, v in anthropic_messages_optional_request_params.items()
|
||||
if not _should_drop_param(k, additional_drop_params_list)
|
||||
and (k != "output_config" or supports_effort)
|
||||
and (k != "thinking" or supports_reasoning)
|
||||
and (k != "context_management" or not drop_context_management)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def anthropic_messages_handler(
|
||||
|
|
@ -673,7 +674,7 @@ def anthropic_messages_handler(
|
|||
)
|
||||
)
|
||||
|
||||
should_drop_params = (
|
||||
should_drop_params: Final = (
|
||||
litellm.drop_params is True
|
||||
or getattr(litellm_params, "drop_params", None) is True
|
||||
or kwargs.get("drop_params") is True
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue