Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions langfun/core/llms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@

# Anthropic models.

from langfun.core.llms.anthropic import Claude46
from langfun.core.llms.anthropic import Claude46Opus
from langfun.core.llms.anthropic import Claude45
from langfun.core.llms.anthropic import Claude45Haiku_20251001
from langfun.core.llms.anthropic import Claude45Sonnet_20250929
Expand All @@ -187,6 +189,7 @@
from langfun.core.llms.anthropic import Claude3Haiku_20240307

from langfun.core.llms.vertexai import VertexAIAnthropic
from langfun.core.llms.vertexai import VertexAIClaude46Opus
from langfun.core.llms.vertexai import VertexAIClaude45Haiku_20251001
from langfun.core.llms.vertexai import VertexAIClaude45Sonnet_20250929
from langfun.core.llms.vertexai import VertexAIClaude45Opus_20251101
Expand Down
62 changes: 62 additions & 0 deletions langfun/core/llms/anthropic.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,31 @@ def max_tokens_per_minute(self) -> int:


SUPPORTED_MODELS = [
AnthropicModelInfo(
model_id='claude-opus-4-6',
provider='Anthropic',
in_service=True,
description='Claude 4.6 Opus model (02/05/2026).',
release_date=datetime.datetime(2026, 2, 5),
input_modalities=(
AnthropicModelInfo.INPUT_IMAGE_TYPES
+ AnthropicModelInfo.INPUT_DOC_TYPES
),
context_length=lf.ModelInfo.ContextLength(
max_input_tokens=1_000_000,
max_output_tokens=128_000,
),
pricing=lf.ModelInfo.Pricing(
cost_per_1m_cached_input_tokens=0.5,
cost_per_1m_input_tokens=5,
cost_per_1m_output_tokens=25,
),
rate_limits=AnthropicModelInfo.RateLimits(
max_requests_per_minute=2000,
max_input_tokens_per_minute=1_000_000,
max_output_tokens_per_minute=400_000,
),
),
AnthropicModelInfo(
model_id='claude-haiku-4-5-20251001',
provider='Anthropic',
Expand Down Expand Up @@ -326,6 +351,32 @@ def max_tokens_per_minute(self) -> int:
max_output_tokens_per_minute=0,
),
),
AnthropicModelInfo(
model_id='claude-opus-4-6',
alias_for='claude-opus-4-6',
provider='VertexAI',
in_service=True,
description='Claude 4.6 Opus model served on VertexAI (02/05/2026).',
release_date=datetime.datetime(2026, 2, 5),
input_modalities=(
AnthropicModelInfo.INPUT_IMAGE_TYPES
+ AnthropicModelInfo.INPUT_DOC_TYPES
),
context_length=lf.ModelInfo.ContextLength(
max_input_tokens=1_000_000,
max_output_tokens=128_000,
),
pricing=lf.ModelInfo.Pricing(
cost_per_1m_cached_input_tokens=0.5,
cost_per_1m_input_tokens=5,
cost_per_1m_output_tokens=25,
),
rate_limits=AnthropicModelInfo.RateLimits(
max_requests_per_minute=100,
max_input_tokens_per_minute=1_000_000,
max_output_tokens_per_minute=80_000,
),
),
AnthropicModelInfo(
model_id='claude-opus-4-5@20251101',
alias_for='claude-opus-4-5-20251101',
Expand Down Expand Up @@ -868,6 +919,17 @@ def _error(self, status_code: int, content: str) -> lf.LMError:
return super()._error(status_code, content)


class Claude46(Anthropic):
"""Base class for Claude 4.6 models."""


# pylint: disable=invalid-name
class Claude46Opus(Claude46):
"""Claude 4.6 Opus model."""

model = 'claude-opus-4-6'


class Claude45(Anthropic):
"""Base class for Claude 4.5 models."""

Expand Down
6 changes: 6 additions & 0 deletions langfun/core/llms/vertexai.py
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,12 @@ def request(
# pylint: disable=invalid-name


class VertexAIClaude46Opus(VertexAIAnthropic):
"""Anthropic's Claude 4.6 Opus model on VertexAI."""

model = 'claude-opus-4-6'


class VertexAIClaude45Haiku_20251001(VertexAIAnthropic):
"""Anthropic's Claude 4.5 Haiku model on VertexAI."""
model = 'claude-haiku-4-5@20251001'
Expand Down
Loading