fix(anthropic): set max input tokens based on 1m context beta header (#35341)

This commit is contained in:
ccurme
2026-02-19 21:01:49 -05:00
committed by GitHub
parent 135a208919
commit 5362bf5666
2 changed files with 23 additions and 0 deletions

View File

@@ -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

View File

@@ -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")