diff --git a/libs/partners/anthropic/langchain_anthropic/chat_models.py b/libs/partners/anthropic/langchain_anthropic/chat_models.py index 92330a03ac0..85fd7c7fd0d 100644 --- a/libs/partners/anthropic/langchain_anthropic/chat_models.py +++ b/libs/partners/anthropic/langchain_anthropic/chat_models.py @@ -1305,11 +1305,17 @@ class ChatAnthropic(BaseChatModel): def validate_max_tokens(cls, values: dict[str, Any]) -> Any: """Validate max_tokens.""" if values.get("max_tokens") is None and values.get("model"): - if "claude-opus-4" in values.get("model"): + if "claude-opus-4" in values.get("model", ""): values["max_tokens"] = 32000 - elif values.get("model") in ["claude-sonnet-4", "claude-3-7-sonnet"]: + elif ( + "claude-sonnet-4" in values.get("model", "") + or "claude-3-7-sonnet" in values.get("model", "") + ): values["max_tokens"] = 64000 - elif values.get("model") in ["claude-3-5-sonnet", "claude-3-5-haiku"]: + elif ( + "claude-3-5-sonnet" in values.get("model", "") + or "claude-3-5-haiku" in values.get("model", "") + ): values["max_tokens"] = 8192 # leaves us with "claude-3-5-opus", "claude-3-haiku" else: