From a04c1c76e6803892a1027dc2d9c38e1efa839dd9 Mon Sep 17 00:00:00 2001 From: keenborder786 <21110290@lums.edu.pk> Date: Fri, 11 Jul 2025 06:01:43 +0500 Subject: [PATCH] fix: validate_max_tokens --- .../anthropic/langchain_anthropic/chat_models.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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: