diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 74c3d27e2ee0..704127780bec 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -41420,6 +41420,7 @@ }, "bedrock/us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0": { "cache_creation_input_token_cost": 1.5e-06, + "cache_creation_input_token_cost_above_1hr": 2.4e-06, "cache_read_input_token_cost": 1.2e-07, "input_cost_per_token": 1.2e-06, "litellm_provider": "bedrock", @@ -41442,6 +41443,7 @@ }, "bedrock/us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0": { "cache_creation_input_token_cost": 1.5e-06, + "cache_creation_input_token_cost_above_1hr": 2.4e-06, "cache_read_input_token_cost": 1.2e-07, "input_cost_per_token": 1.2e-06, "litellm_provider": "bedrock", diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index 572c9b0ebd92..730494eab729 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -41304,6 +41304,7 @@ }, "bedrock/us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0": { "cache_creation_input_token_cost": 1.5e-06, + "cache_creation_input_token_cost_above_1hr": 2.4e-06, "cache_read_input_token_cost": 1.2e-07, "input_cost_per_token": 1.2e-06, "litellm_provider": "bedrock", @@ -41326,6 +41327,7 @@ }, "bedrock/us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0": { "cache_creation_input_token_cost": 1.5e-06, + "cache_creation_input_token_cost_above_1hr": 2.4e-06, "cache_read_input_token_cost": 1.2e-07, "input_cost_per_token": 1.2e-06, "litellm_provider": "bedrock", diff --git a/tests/test_litellm/test_bedrock_usgov_haiku_1hr_cache.py b/tests/test_litellm/test_bedrock_usgov_haiku_1hr_cache.py new file mode 100644 index 000000000000..1312aa110d3f --- /dev/null +++ b/tests/test_litellm/test_bedrock_usgov_haiku_1hr_cache.py @@ -0,0 +1,47 @@ +""" +Validate that AWS GovCloud (Bedrock us-gov-*) Haiku 4.5 entries carry +the 1-hour cache write tier. + +AWS Bedrock GovCloud pricing applies a +20% premium over global +Anthropic rates. Global Haiku 4.5 1h cache write is $2.00/MTok; us-gov +is therefore $2.40/MTok — exactly 1.6x the 5-minute rate of $1.50/MTok. + +Source: https://aws.amazon.com/bedrock/pricing/ +""" + +import json +import os + +import pytest + + +@pytest.fixture(scope="module") +def model_data(): + json_path = os.path.join( + os.path.dirname(__file__), "../../model_prices_and_context_window.json" + ) + with open(json_path) as f: + return json.load(f) + + +HAIKU_USGOV_KEYS = [ + "bedrock/us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0", + "bedrock/us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0", +] + + +@pytest.mark.parametrize("model_key", HAIKU_USGOV_KEYS) +def test_usgov_haiku_4_5_1hr_cache_write(model_data, model_key): + assert model_key in model_data, f"Missing model entry: {model_key}" + info = model_data[model_key] + assert ( + info["cache_creation_input_token_cost"] == 1.5e-06 + ), f"{model_key}: 5m cache write should be $1.50/MTok" + assert ( + info["cache_creation_input_token_cost_above_1hr"] == 2.4e-06 + ), f"{model_key}: 1h cache write should be $2.40/MTok" + ratio = ( + info["cache_creation_input_token_cost_above_1hr"] + / info["cache_creation_input_token_cost"] + ) + assert abs(ratio - 1.6) < 1e-9, f"{model_key}: 1h/5m ratio is {ratio}, expected 1.6"