mirror of
https://github.com/hwchase17/langchain.git
synced 2026-02-21 06:33:41 +00:00
fix(anthropic): set max input tokens based on 1m context beta header (#35341)
This commit is contained in:
@@ -1024,6 +1024,12 @@ class ChatAnthropic(BaseChatModel):
|
||||
"""Set model profile if not overridden."""
|
||||
if self.profile is None:
|
||||
self.profile = _get_default_model_profile(self.model)
|
||||
if (
|
||||
self.profile is not None
|
||||
and self.betas
|
||||
and "context-1m-2025-08-07" in self.betas
|
||||
):
|
||||
self.profile["max_input_tokens"] = 1_000_000
|
||||
return self
|
||||
|
||||
@cached_property
|
||||
|
||||
@@ -2171,6 +2171,23 @@ def test_profile() -> None:
|
||||
assert model.profile == {"tool_calling": False}
|
||||
|
||||
|
||||
def test_profile_1m_context_beta() -> None:
|
||||
model = ChatAnthropic(model="claude-sonnet-4-5")
|
||||
assert model.profile
|
||||
assert model.profile["max_input_tokens"] == 200000
|
||||
|
||||
model = ChatAnthropic(model="claude-sonnet-4-5", betas=["context-1m-2025-08-07"])
|
||||
assert model.profile
|
||||
assert model.profile["max_input_tokens"] == 1000000
|
||||
|
||||
model = ChatAnthropic(
|
||||
model="claude-sonnet-4-5",
|
||||
betas=["token-efficient-tools-2025-02-19"],
|
||||
)
|
||||
assert model.profile
|
||||
assert model.profile["max_input_tokens"] == 200000
|
||||
|
||||
|
||||
async def test_model_profile_not_blocking() -> None:
|
||||
with blockbuster_ctx():
|
||||
model = ChatAnthropic(model="claude-sonnet-4-5")
|
||||
|
||||
Reference in New Issue
Block a user