mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-14 23:21:35 +00:00
test(e2e): bump claude code compat matrix tiers to sonnet-5 and opus-4-8
Anthropic and both Bedrock surfaces move their mid and large tiers from claude-sonnet-4-6 / claude-opus-4-7 to claude-sonnet-5 / claude-opus-4-8. The haiku-4-5 small tier is unchanged everywhere. Vertex AI stays fully on the old tiers and Azure keeps sonnet-4-6 in its sonnet slot (opus does bump to 4-8): live validation showed both new base models 429 with 0 TPM quota in the suite's Vertex project/region, and the Foundry subscription has a hard 0 TPM quota limit for Claude Sonnet 5, so a sonnet-5 deployment cannot be created yet. test_v0_layout now encodes the per-provider tier expectations so the pins are enforced and documented.
This commit is contained in:
parent
ff4a40f017
commit
3befa3afc3
69 changed files with 190 additions and 174 deletions
|
|
@ -26,7 +26,7 @@
|
|||
"providers": {
|
||||
"anthropic": {
|
||||
"status": "fail",
|
||||
"error": "[claude-sonnet-4-6] tool call dropped"
|
||||
"error": "[claude-sonnet-5] tool call dropped"
|
||||
},
|
||||
"bedrock_invoke": {
|
||||
"status": "not_applicable",
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@
|
|||
{
|
||||
"feature_id": "basic_messaging_non_streaming",
|
||||
"provider": "anthropic",
|
||||
"nodeid": "tests/e2e/claude_code/basic_messaging_non_streaming/test_anthropic.py::test_basic_messaging_non_streaming_anthropic[claude-sonnet-4-6]",
|
||||
"nodeid": "tests/e2e/claude_code/basic_messaging_non_streaming/test_anthropic.py::test_basic_messaging_non_streaming_anthropic[claude-sonnet-5]",
|
||||
"result": {"status": "pass"}
|
||||
},
|
||||
{
|
||||
"feature_id": "basic_messaging_non_streaming",
|
||||
"provider": "anthropic",
|
||||
"nodeid": "tests/e2e/claude_code/basic_messaging_non_streaming/test_anthropic.py::test_basic_messaging_non_streaming_anthropic[claude-opus-4-7]",
|
||||
"nodeid": "tests/e2e/claude_code/basic_messaging_non_streaming/test_anthropic.py::test_basic_messaging_non_streaming_anthropic[claude-opus-4-8]",
|
||||
"result": {"status": "pass"}
|
||||
},
|
||||
{
|
||||
|
|
@ -28,8 +28,8 @@
|
|||
{
|
||||
"feature_id": "tool_use",
|
||||
"provider": "anthropic",
|
||||
"nodeid": "tests/e2e/claude_code/tool_use/test_anthropic.py::test_x[claude-sonnet-4-6]",
|
||||
"result": {"status": "fail", "error": "[claude-sonnet-4-6] tool call dropped"}
|
||||
"nodeid": "tests/e2e/claude_code/tool_use/test_anthropic.py::test_x[claude-sonnet-5]",
|
||||
"result": {"status": "fail", "error": "[claude-sonnet-5] tool call dropped"}
|
||||
},
|
||||
{
|
||||
"feature_id": "tool_use",
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ def test_build_matrix_any_fail_makes_cell_fail():
|
|||
{
|
||||
"feature_id": "f",
|
||||
"provider": "anthropic",
|
||||
"result": {"status": "fail", "error": "[claude-opus-4-7] timeout"},
|
||||
"result": {"status": "fail", "error": "[claude-opus-4-8] timeout"},
|
||||
},
|
||||
{"feature_id": "f", "provider": "anthropic", "result": {"status": "pass"}},
|
||||
]
|
||||
|
|
@ -87,7 +87,7 @@ def test_build_matrix_any_fail_makes_cell_fail():
|
|||
)
|
||||
cell = matrix["features"][0]["providers"]["anthropic"]
|
||||
assert cell["status"] == "fail"
|
||||
assert cell["error"] == "[claude-opus-4-7] timeout"
|
||||
assert cell["error"] == "[claude-opus-4-8] timeout"
|
||||
|
||||
|
||||
def test_build_matrix_joins_all_failure_errors_in_one_cell():
|
||||
|
|
@ -110,7 +110,7 @@ def test_build_matrix_joins_all_failure_errors_in_one_cell():
|
|||
{
|
||||
"feature_id": "f",
|
||||
"provider": "anthropic",
|
||||
"result": {"status": "fail", "error": "[claude-opus-4-7] timeout"},
|
||||
"result": {"status": "fail", "error": "[claude-opus-4-8] timeout"},
|
||||
},
|
||||
]
|
||||
matrix = build_matrix(
|
||||
|
|
@ -123,7 +123,7 @@ def test_build_matrix_joins_all_failure_errors_in_one_cell():
|
|||
cell = matrix["features"][0]["providers"]["anthropic"]
|
||||
assert cell["status"] == "fail"
|
||||
assert "[claude-haiku-4-5] 429" in cell["error"]
|
||||
assert "[claude-opus-4-7] timeout" in cell["error"]
|
||||
assert "[claude-opus-4-8] timeout" in cell["error"]
|
||||
|
||||
|
||||
def test_build_matrix_mixed_pass_and_not_tested_surfaces_pass():
|
||||
|
|
@ -393,7 +393,7 @@ def test_build_matrix_6x5_grid_matches_published_sample():
|
|||
|
||||
feature_ids = [feature["id"] for feature in manifest["features"]]
|
||||
providers = manifest["providers"]
|
||||
models = ["claude-haiku-4-5", "claude-sonnet-4-6", "claude-opus-4-7"]
|
||||
models = ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-4-8"]
|
||||
|
||||
results = []
|
||||
for feature_id in feature_ids:
|
||||
|
|
@ -440,7 +440,7 @@ def test_build_matrix_1x5_grid_one_failing_model_breaks_cell():
|
|||
"provider": "bedrock_invoke",
|
||||
"result": {
|
||||
"status": "fail",
|
||||
"error": "[claude-opus-4-7-bedrock-invoke] claude CLI exited 1: throttled",
|
||||
"error": "[claude-opus-4-8-bedrock-invoke] claude CLI exited 1: throttled",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -459,7 +459,7 @@ def test_build_matrix_1x5_grid_one_failing_model_breaks_cell():
|
|||
)
|
||||
cell = matrix["features"][0]["providers"]["bedrock_invoke"]
|
||||
assert cell["status"] == "fail"
|
||||
assert "claude-opus-4-7-bedrock-invoke" in cell["error"]
|
||||
assert "claude-opus-4-8-bedrock-invoke" in cell["error"]
|
||||
|
||||
|
||||
def test_build_from_paths_writes_output(tmp_path):
|
||||
|
|
|
|||
|
|
@ -141,18 +141,37 @@ def test_every_manifest_feature_has_per_provider_test_file(feature_id, provider)
|
|||
assert test_file.is_file(), f"missing per-provider test file: {test_file}"
|
||||
|
||||
|
||||
DEFAULT_TIERS = ("haiku-4-5", "sonnet-5", "opus-4-8")
|
||||
|
||||
PROVIDER_TIER_OVERRIDES = {
|
||||
"vertex_ai": ("haiku-4-5", "sonnet-4-6", "opus-4-7"),
|
||||
"azure": ("haiku-4-5", "sonnet-4-6", "opus-4-8"),
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("feature_id", EXPECTED_FEATURE_IDS)
|
||||
@pytest.mark.parametrize("provider", EXPECTED_PROVIDERS)
|
||||
def test_per_provider_test_file_imports_and_parametrizes_three_models(
|
||||
feature_id, provider
|
||||
):
|
||||
"""Every test file must reference the three Claude tiers required
|
||||
by the PRD: Haiku 4.5, Sonnet 4.6, Opus 4.7. Implementations may
|
||||
use plain aliases or per-provider-suffixed aliases (e.g.
|
||||
`claude-opus-4-7-bedrock-invoke`), so we check for the tier
|
||||
substrings rather than exact alias names."""
|
||||
by the PRD: small, mid, and large; Haiku 4.5, Sonnet 5, and Opus
|
||||
4.8 as of the 2026-07 tier bump. Implementations may use plain
|
||||
aliases or per-provider-suffixed aliases (e.g.
|
||||
`claude-opus-4-8-bedrock-invoke`), so we check for the tier
|
||||
substrings rather than exact alias names.
|
||||
|
||||
Two provider columns are pinned to older tiers until quota is
|
||||
granted: Vertex AI has 0 TPM for the sonnet-5 / opus-4-8 base
|
||||
models in the suite's project+region (deterministic 429), and
|
||||
Microsoft Foundry has a hard 0 TPM quota limit for Claude Sonnet 5
|
||||
in the suite's subscription, so its sonnet slot stays on
|
||||
sonnet-4-6 while its opus slot runs the deployed opus-4-8. Once
|
||||
quota requests land, flip the overrides here and the matching
|
||||
aliases in `test_config.yaml` and the per-provider test files."""
|
||||
tiers = PROVIDER_TIER_OVERRIDES.get(provider, DEFAULT_TIERS)
|
||||
text = (REPO_ROOT / feature_id / f"test_{provider}.py").read_text()
|
||||
for tier in ("haiku-4-5", "sonnet-4-6", "opus-4-7"):
|
||||
for tier in tiers:
|
||||
assert (
|
||||
tier in text
|
||||
), f"{feature_id}/test_{provider}.py does not reference {tier}"
|
||||
|
|
@ -179,5 +198,5 @@ def test_azure_test_file_drives_the_proxy(feature_id):
|
|||
)
|
||||
assert '"status": "not_applicable"' not in text, (
|
||||
f"{feature_id}/test_azure.py still reports not_applicable; Microsoft Foundry "
|
||||
"now hosts Claude (Haiku 4.5, Sonnet 4.6, Opus 4.7), so this row must run."
|
||||
"now hosts Claude (Haiku 4.5, Sonnet 4.6, Opus 4.8), so this row must run."
|
||||
)
|
||||
|
|
|
|||
|
|
@ -184,8 +184,8 @@ def test_verify_streaming_requires_all_models_to_stream(monkeypatch):
|
|||
fake_result = _FakeResult()
|
||||
outcomes = {
|
||||
"claude-haiku-4-5": DriverResult(text="ok", events=_streamed_events(5)),
|
||||
"claude-sonnet-4-6": DriverResult(text="ok", events=_buffered_events()),
|
||||
"claude-opus-4-7": DriverResult(text="ok", events=_streamed_events(5)),
|
||||
"claude-sonnet-5": DriverResult(text="ok", events=_buffered_events()),
|
||||
"claude-opus-4-8": DriverResult(text="ok", events=_streamed_events(5)),
|
||||
}
|
||||
_install_fake_runner(monkeypatch, outcomes_by_model=outcomes)
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ def test_run_claude_overlays_proxy_env():
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://proxy.example:4000",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -112,7 +112,7 @@ def test_run_claude_extra_env_is_added_to_subprocess_env():
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
extra_env={"MAX_THINKING_TOKENS": "4096"},
|
||||
|
|
@ -146,7 +146,7 @@ def test_run_claude_inherits_only_allowlisted_os_environ(monkeypatch):
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -178,7 +178,7 @@ def test_run_claude_uses_isolated_per_invocation_home(monkeypatch, tmp_path):
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -209,7 +209,7 @@ def test_run_claude_isolated_home_is_distinct_per_invocation(monkeypatch):
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -219,7 +219,7 @@ def test_run_claude_isolated_home_is_distinct_per_invocation(monkeypatch):
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -243,7 +243,7 @@ def test_run_claude_isolated_home_cleaned_up_after_run(monkeypatch):
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -275,7 +275,7 @@ def test_run_claude_isolated_home_cleaned_up_on_subprocess_failure(monkeypatch):
|
|||
with pytest.raises(ClaudeCLIError):
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
runner=runner,
|
||||
|
|
@ -294,7 +294,7 @@ def test_run_claude_extra_env_can_pass_through_otherwise_blocked_var(monkeypatch
|
|||
runner, captured = _make_runner(stdout="")
|
||||
run_claude(
|
||||
prompt="hi",
|
||||
model="claude-opus-4-7",
|
||||
model="claude-opus-4-8",
|
||||
base_url="http://localhost",
|
||||
api_key="sk-abc",
|
||||
extra_env={"ANTHROPIC_API_KEY": "from-arg"},
|
||||
|
|
|
|||
|
|
@ -60,11 +60,11 @@ from claude_code.rate_limiter import (
|
|||
"model, expected",
|
||||
[
|
||||
("claude-haiku-4-5", PROVIDER_ANTHROPIC),
|
||||
("claude-sonnet-4-6", PROVIDER_ANTHROPIC),
|
||||
("claude-opus-4-7", PROVIDER_ANTHROPIC),
|
||||
("claude-sonnet-5", PROVIDER_ANTHROPIC),
|
||||
("claude-opus-4-8", PROVIDER_ANTHROPIC),
|
||||
("claude-haiku-4-5-azure", PROVIDER_AZURE),
|
||||
("claude-sonnet-4-6-azure", PROVIDER_AZURE),
|
||||
("claude-opus-4-7-vertex", PROVIDER_VERTEX_AI),
|
||||
("claude-sonnet-5-azure", PROVIDER_AZURE),
|
||||
("claude-opus-4-8-vertex", PROVIDER_VERTEX_AI),
|
||||
("claude-haiku-4-5-bedrock-converse", PROVIDER_BEDROCK_CONVERSE),
|
||||
("claude-haiku-4-5-bedrock-invoke", PROVIDER_BEDROCK_INVOKE),
|
||||
],
|
||||
|
|
@ -87,7 +87,7 @@ def test_infer_provider_rejects_empty_string():
|
|||
def test_infer_provider_is_case_insensitive():
|
||||
"""Aliases in the proxy config sometimes drift between cases; we
|
||||
should still route them to the right column."""
|
||||
assert infer_provider("CLAUDE-OPUS-4-7-AZURE") == PROVIDER_AZURE
|
||||
assert infer_provider("CLAUDE-OPUS-4-8-AZURE") == PROVIDER_AZURE
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ The (feature, provider) for this cell is inferred from the file path by
|
|||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^
|
||||
feature_id provider
|
||||
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 4.6, and Opus
|
||||
4.7; the cell only goes green if all three pass. The shared
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 5, and Opus
|
||||
4.8; the cell only goes green if all three pass. The shared
|
||||
`run_basic_messaging_cell` helper fans the three model runs out in
|
||||
parallel and reports one `compat_result.add(...)` entry per model so
|
||||
the matrix builder still sees three rows for this (feature, provider).
|
||||
|
|
@ -27,8 +27,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
# routing config; the driver only sends the alias.
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ The (feature, provider) for this cell is inferred from the file path by
|
|||
feature_id provider
|
||||
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 4.6, and Opus
|
||||
4.7; the cell only goes green if all three pass. The shared
|
||||
4.8; the cell only goes green if all three pass. The shared
|
||||
`run_basic_messaging_cell` helper fans the three model runs out in
|
||||
parallel and reports one `compat_result.add(...)` entry per model so
|
||||
the matrix builder still sees three rows for this (feature, provider).
|
||||
|
|
@ -34,7 +34,7 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ The (feature, provider) for this cell is inferred from the file path by
|
|||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
|
||||
feature_id provider
|
||||
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 4.6, and Opus
|
||||
4.7; the cell only goes green if all three pass. The shared
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 5, and Opus
|
||||
4.8; the cell only goes green if all three pass. The shared
|
||||
`run_basic_messaging_cell` helper fans the three model runs out in
|
||||
parallel and reports one `compat_result.add(...)` entry per model so
|
||||
the matrix builder still sees three rows for this (feature, provider).
|
||||
|
|
@ -28,8 +28,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
# strategy.
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ The (feature, provider) for this cell is inferred from the file path by
|
|||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
|
||||
feature_id provider
|
||||
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 4.6, and Opus
|
||||
4.7; the cell only goes green if all three pass. The shared
|
||||
Per the PRD, every cell exercises Claude Haiku 4.5, Sonnet 5, and Opus
|
||||
4.8; the cell only goes green if all three pass. The shared
|
||||
`run_basic_messaging_cell` helper fans the three model runs out in
|
||||
parallel and reports one `compat_result.add(...)` entry per model so
|
||||
the matrix builder still sees three rows for this (feature, provider).
|
||||
|
|
@ -28,8 +28,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
# routing strategy.
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ from claude_code._basic_messaging import run_basic_messaging_cell
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -68,12 +68,12 @@ from claude_code.cli_driver import (
|
|||
PROXY_BASE_URL_ENV = "LITELLM_PROXY_BASE_URL"
|
||||
PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
||||
|
||||
# Haiku 4.5 is excluded -- only Sonnet 4.6 and Opus 4.7 support the
|
||||
# Haiku 4.5 is excluded -- only Sonnet 5 and Opus 4.8 support the
|
||||
# 1M-context beta. See module docstring for the per-cell-aggregator
|
||||
# rationale.
|
||||
ANTHROPIC_MODELS: Sequence[str] = (
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
)
|
||||
|
||||
# Beta header that opts an Anthropic-shape model into the 1M context
|
||||
|
|
|
|||
|
|
@ -68,12 +68,12 @@ from claude_code.cli_driver import (
|
|||
PROXY_BASE_URL_ENV = "LITELLM_PROXY_BASE_URL"
|
||||
PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
||||
|
||||
# Haiku 4.5 is excluded -- only Sonnet 4.6 and Opus 4.7 support the
|
||||
# Haiku 4.5 is excluded -- only Sonnet 4.6 and Opus 4.8 support the
|
||||
# 1M-context beta. See module docstring for the per-cell-aggregator
|
||||
# rationale.
|
||||
AZURE_MODELS: Sequence[str] = (
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
)
|
||||
|
||||
# Beta header that opts an Anthropic-shape model into the 1M context
|
||||
|
|
|
|||
|
|
@ -68,12 +68,12 @@ from claude_code.cli_driver import (
|
|||
PROXY_BASE_URL_ENV = "LITELLM_PROXY_BASE_URL"
|
||||
PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
||||
|
||||
# Haiku 4.5 is excluded -- only Sonnet 4.6 and Opus 4.7 support the
|
||||
# Haiku 4.5 is excluded -- only Sonnet 5 and Opus 4.8 support the
|
||||
# 1M-context beta. See module docstring for the per-cell-aggregator
|
||||
# rationale.
|
||||
BEDROCK_CONVERSE_MODELS: Sequence[str] = (
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
)
|
||||
|
||||
# Beta header that opts an Anthropic-shape model into the 1M context
|
||||
|
|
|
|||
|
|
@ -68,12 +68,12 @@ from claude_code.cli_driver import (
|
|||
PROXY_BASE_URL_ENV = "LITELLM_PROXY_BASE_URL"
|
||||
PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
||||
|
||||
# Haiku 4.5 is excluded -- only Sonnet 4.6 and Opus 4.7 support the
|
||||
# Haiku 4.5 is excluded -- only Sonnet 5 and Opus 4.8 support the
|
||||
# 1M-context beta. See module docstring for the per-cell-aggregator
|
||||
# rationale.
|
||||
BEDROCK_INVOKE_MODELS: Sequence[str] = (
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
)
|
||||
|
||||
# Beta header that opts an Anthropic-shape model into the 1M context
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ features:
|
|||
name: Thinking
|
||||
# The single row covers both API shapes Anthropic exposes — manual
|
||||
# `thinking: {type: "enabled", budget_tokens: N}` (Haiku 4.5) and
|
||||
# `thinking: {type: "adaptive"}` (Opus 4.7); Sonnet 4.6 supports
|
||||
# `thinking: {type: "adaptive"}` (Opus 4.8); Sonnet 5 supports
|
||||
# either and Claude Code picks per model. A break in either
|
||||
# transformer surfaces as a red cell because all three tiers must
|
||||
# pass for the cell to go green. The row was named
|
||||
|
|
@ -98,6 +98,6 @@ features:
|
|||
# 200k context window so the request can only succeed when the
|
||||
# beta header makes it all the way through the proxy to the
|
||||
# upstream. Haiku 4.5 is intentionally omitted from this row's
|
||||
# model list (its window is 200k); Sonnet 4.6 and Opus 4.7 are
|
||||
# the only tiers exercised. Costs roughly $4/cell/run --
|
||||
# model list (its window is 200k); the Sonnet and Opus tiers are
|
||||
# the only ones exercised. Costs roughly $4/cell/run --
|
||||
# tighten the prompt-token target if pricing changes meaningfully.
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Smallest valid PDF that renders a single visible word ("PONG"). Built
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
PDF_MARKER = "PONG"
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
PDF_MARKER = "PONG"
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
PDF_MARKER = "PONG"
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Per the changelog (2.1.108): `ENABLE_PROMPT_CACHING_1H` flips Claude
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
CACHE_1H_ENV = {"ENABLE_PROMPT_CACHING_1H": "1"}
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
CACHE_1H_ENV = {
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
# Set both the modern and the deprecated-but-honored Bedrock var so we
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Minimal schema with one required integer field. Kept intentionally
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
# Minimal schema with one required integer field. Kept intentionally
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
# Minimal schema with one required integer field. Kept intentionally
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
# Minimal schema with one required integer field. Kept intentionally
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ model_list:
|
|||
litellm_params:
|
||||
model: anthropic/claude-haiku-4-5
|
||||
api_key: os.environ/ANTHROPIC_API_KEY
|
||||
- model_name: claude-sonnet-4-6
|
||||
- model_name: claude-sonnet-5
|
||||
litellm_params:
|
||||
model: anthropic/claude-sonnet-4-6
|
||||
model: anthropic/claude-sonnet-5
|
||||
api_key: os.environ/ANTHROPIC_API_KEY
|
||||
- model_name: claude-opus-4-7
|
||||
- model_name: claude-opus-4-8
|
||||
litellm_params:
|
||||
model: anthropic/claude-opus-4-7
|
||||
model: anthropic/claude-opus-4-8
|
||||
api_key: os.environ/ANTHROPIC_API_KEY
|
||||
|
||||
# ---- Bedrock (InvokeModel) ----
|
||||
|
|
@ -35,13 +35,13 @@ model_list:
|
|||
litellm_params:
|
||||
model: bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0
|
||||
aws_region_name: us-east-1
|
||||
- model_name: claude-sonnet-4-6-bedrock-invoke
|
||||
- model_name: claude-sonnet-5-bedrock-invoke
|
||||
litellm_params:
|
||||
model: bedrock/us.anthropic.claude-sonnet-4-6
|
||||
model: bedrock/us.anthropic.claude-sonnet-5
|
||||
aws_region_name: us-east-1
|
||||
- model_name: claude-opus-4-7-bedrock-invoke
|
||||
- model_name: claude-opus-4-8-bedrock-invoke
|
||||
litellm_params:
|
||||
model: bedrock/us.anthropic.claude-opus-4-7
|
||||
model: bedrock/us.anthropic.claude-opus-4-8
|
||||
aws_region_name: us-east-1
|
||||
|
||||
# ---- Bedrock (Converse) ----
|
||||
|
|
@ -49,13 +49,13 @@ model_list:
|
|||
litellm_params:
|
||||
model: bedrock/converse/us.anthropic.claude-haiku-4-5-20251001-v1:0
|
||||
aws_region_name: us-east-1
|
||||
- model_name: claude-sonnet-4-6-bedrock-converse
|
||||
- model_name: claude-sonnet-5-bedrock-converse
|
||||
litellm_params:
|
||||
model: bedrock/converse/us.anthropic.claude-sonnet-4-6
|
||||
model: bedrock/converse/us.anthropic.claude-sonnet-5
|
||||
aws_region_name: us-east-1
|
||||
- model_name: claude-opus-4-7-bedrock-converse
|
||||
- model_name: claude-opus-4-8-bedrock-converse
|
||||
litellm_params:
|
||||
model: bedrock/converse/us.anthropic.claude-opus-4-7
|
||||
model: bedrock/converse/us.anthropic.claude-opus-4-8
|
||||
aws_region_name: us-east-1
|
||||
|
||||
# ---- Vertex AI ----
|
||||
|
|
@ -86,9 +86,9 @@ model_list:
|
|||
model: azure_ai/claude-sonnet-4-6
|
||||
api_base: os.environ/AZURE_FOUNDRY_API_BASE
|
||||
api_key: os.environ/AZURE_FOUNDRY_API_KEY
|
||||
- model_name: claude-opus-4-7-azure
|
||||
- model_name: claude-opus-4-8-azure
|
||||
litellm_params:
|
||||
model: azure_ai/claude-opus-4-7
|
||||
model: azure_ai/claude-opus-4-8
|
||||
api_base: os.environ/AZURE_FOUNDRY_API_BASE
|
||||
api_key: os.environ/AZURE_FOUNDRY_API_KEY
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# --effort max maps to the largest thinking budget on every supported
|
||||
|
|
@ -45,15 +45,15 @@ ANTHROPIC_MODELS = [
|
|||
# use a CLI flag (rather than the legacy MAX_THINKING_TOKENS env var)
|
||||
# because Claude Code 2.x reads thinking config from --effort, not from
|
||||
# the env, and silently no-ops the env var. We use `max` rather than
|
||||
# `high` because Sonnet 4.6 / Opus 4.7 only emit thinking blocks when
|
||||
# `high` because Sonnet 5 / Opus 4.8 only emit thinking blocks when
|
||||
# the budget is generous and the prompt is non-trivial.
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
# A puzzle non-trivial enough that Sonnet/Opus actually engage thinking
|
||||
# rather than answer from memory. Trivial arithmetic ("3-2=?") is
|
||||
# optimized away on the modern tiers and arrives without a thinking
|
||||
# block, which would make this test silently false-fail under
|
||||
# `--effort max`. Haiku 4.5 thinks even for trivial prompts; Sonnet 4.6
|
||||
# and Opus 4.7 only emit thinking when the upstream judges it useful.
|
||||
# `--effort max`. Haiku 4.5 thinks even for trivial prompts; Sonnet 5
|
||||
# and Opus 4.8 only emit thinking when the upstream judges it useful.
|
||||
THINKING_PROMPT = (
|
||||
"I have a 3-gallon jug and a 5-gallon jug. How can I measure "
|
||||
"exactly 4 gallons of water? Think through the steps carefully."
|
||||
|
|
|
|||
|
|
@ -8,10 +8,7 @@ that the upstream returned a `thinking` content block.
|
|||
Foundry's Claude deployments advertise `supports_reasoning: true` in
|
||||
LiteLLM's pricing metadata; the `thinking={"type": "enabled", ...}`
|
||||
parameter passes through `azure_ai/claude-*` to Foundry's
|
||||
`/anthropic/v1/messages` endpoint unchanged. Note that
|
||||
`claude-opus-4-7-preview` documents thinking as not supported on
|
||||
Foundry; if that lands, this row may flip to a partial pass and we'll
|
||||
re-evaluate.
|
||||
`/anthropic/v1/messages` endpoint unchanged.
|
||||
|
||||
The (feature, provider) for this cell is inferred from the file path by
|
||||
`tests/e2e/claude_code/conftest.py`:
|
||||
|
|
@ -40,7 +37,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Extended thinking on, with a small budget — enough to surface a
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
THINKING_ARGS = ["--effort", "max"]
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Built-in tool-use prompt: ask Claude to use the `Bash` tool. The CLI
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Same shape as the non-streaming `tool_use` cell: ask Claude to call
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
TOOL_USE_PROMPT = (
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# Minimal 1x1 red PNG, base64-encoded. We embed it directly as the
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
# Minimal 1x1 red PNG, base64-encoded. We embed it directly as the
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
# Minimal 1x1 red PNG, base64-encoded. We embed it directly as the
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
# Minimal 1x1 red PNG, base64-encoded. We embed it directly as the
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
ANTHROPIC_MODELS = [
|
||||
"claude-haiku-4-5",
|
||||
"claude-sonnet-4-6",
|
||||
"claude-opus-4-7",
|
||||
"claude-sonnet-5",
|
||||
"claude-opus-4-8",
|
||||
]
|
||||
|
||||
# A prompt the model cannot answer from training data alone — it forces
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
AZURE_MODELS = [
|
||||
"claude-haiku-4-5-azure",
|
||||
"claude-sonnet-4-6-azure",
|
||||
"claude-opus-4-7-azure",
|
||||
"claude-opus-4-8-azure",
|
||||
]
|
||||
|
||||
# A prompt the model cannot answer from training data alone — it forces
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_CONVERSE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-converse",
|
||||
"claude-sonnet-4-6-bedrock-converse",
|
||||
"claude-opus-4-7-bedrock-converse",
|
||||
"claude-sonnet-5-bedrock-converse",
|
||||
"claude-opus-4-8-bedrock-converse",
|
||||
]
|
||||
|
||||
# A prompt the model cannot answer from training data alone — it forces
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ PROXY_API_KEY_ENV = "LITELLM_PROXY_API_KEY"
|
|||
|
||||
BEDROCK_INVOKE_MODELS = [
|
||||
"claude-haiku-4-5-bedrock-invoke",
|
||||
"claude-sonnet-4-6-bedrock-invoke",
|
||||
"claude-opus-4-7-bedrock-invoke",
|
||||
"claude-sonnet-5-bedrock-invoke",
|
||||
"claude-opus-4-8-bedrock-invoke",
|
||||
]
|
||||
|
||||
# A prompt the model cannot answer from training data alone — it forces
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue