From 9b363c013b0525a5f0876444eb01c7342d9c9027 Mon Sep 17 00:00:00 2001 From: dlowzzxx Date: Fri, 4 Sep 2026 00:11:21 +0200 Subject: [PATCH 1/2] feat(baseten): add baseten/zai-org/GLM-5.3 to model pricing registry (#39342) --- ...odel_prices_and_context_window_backup.json | 18 ++++++ model_prices_and_context_window.json | 18 ++++++ .../baseten/chat/test_baseten_completions.py | 57 +++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 0ee8fc113e21..88dd5a042105 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -24467,6 +24467,24 @@ "mode": "chat", "output_cost_per_token": 7.5e-07 }, + "baseten/zai-org/GLM-5.3": { + "cache_read_input_token_cost": 1.4e-07, + "input_cost_per_token": 1.4e-06, + "litellm_provider": "baseten", + "max_input_tokens": 1048576, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 4.4e-06, + "source": "https://docs.baseten.co/inference/model-apis/overview", + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_tool_choice": true, + "supports_vision": false + }, "baseten/zai-org/GLM-5": { "input_cost_per_token": 9.5e-07, "litellm_provider": "baseten", diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index 0ee8fc113e21..88dd5a042105 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -24467,6 +24467,24 @@ "mode": "chat", "output_cost_per_token": 7.5e-07 }, + "baseten/zai-org/GLM-5.3": { + "cache_read_input_token_cost": 1.4e-07, + "input_cost_per_token": 1.4e-06, + "litellm_provider": "baseten", + "max_input_tokens": 1048576, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 4.4e-06, + "source": "https://docs.baseten.co/inference/model-apis/overview", + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_tool_choice": true, + "supports_vision": false + }, "baseten/zai-org/GLM-5": { "input_cost_per_token": 9.5e-07, "litellm_provider": "baseten", diff --git a/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py b/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py index caf96987933f..efa076a39182 100644 --- a/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py +++ b/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py @@ -54,5 +54,62 @@ def test_model_api_inference(self): assert api_key == "test-key" +class TestBasetenGLM53: + """Test baseten/zai-org/GLM-5.3 pricing, context window, and capability registry""" + + def test_glm_5_3_model_info(self, local_model_cost_map): + """Verify get_model_info resolves cleanly with correct pricing and context window limits""" + import litellm + + info = litellm.get_model_info("zai-org/GLM-5.3", custom_llm_provider="baseten") + assert info["key"] == "baseten/zai-org/GLM-5.3" + assert info["litellm_provider"] == "baseten" + assert info["mode"] == "chat" + assert info["input_cost_per_token"] == 1.4e-06 + assert info["cache_read_input_token_cost"] == 1.4e-07 + assert info["output_cost_per_token"] == 4.4e-06 + assert info["max_input_tokens"] == 1048576 + assert info["max_output_tokens"] == 262144 + assert info["max_tokens"] == 262144 + assert info["supports_function_calling"] is True + assert info["supports_parallel_function_calling"] is True + assert info["supports_prompt_caching"] is True + assert info["supports_reasoning"] is True + assert info["supports_response_schema"] is True + assert info["supports_tool_choice"] is True + assert info["supports_vision"] is False + + def test_glm_5_3_cost_per_token(self, local_model_cost_map): + """Verify cost_per_token returns exact expected cost""" + import litellm + + prompt_cost, completion_cost = litellm.cost_per_token( + "baseten/zai-org/GLM-5.3", prompt_tokens=1000, completion_tokens=500 + ) + assert prompt_cost == pytest.approx(0.0014) + assert completion_cost == pytest.approx(0.0022) + assert prompt_cost + completion_cost == pytest.approx(0.0036) + + def test_glm_5_3_prompt_caching_cost(self, local_model_cost_map): + """Verify prompt caching cost calculation for cached tokens""" + import litellm + from litellm.types.utils import PromptTokensDetailsWrapper, Usage + + usage = Usage( + prompt_tokens=1000, + completion_tokens=500, + prompt_tokens_details=PromptTokensDetailsWrapper(cached_tokens=400), + ) + prompt_cost, completion_cost = litellm.cost_per_token( + "baseten/zai-org/GLM-5.3", usage_object=usage + ) + # 600 un-cached * 1.4e-06 + 400 cached * 1.4e-07 + expected_prompt_cost = (600 * 1.4e-06) + (400 * 1.4e-07) + expected_completion_cost = 500 * 4.4e-06 + assert prompt_cost == pytest.approx(expected_prompt_cost) + assert completion_cost == pytest.approx(expected_completion_cost) + + if __name__ == "__main__": pytest.main([__file__]) + From 21fc4fb00d30fa9e0159035e704dfdeaf2f9c9c7 Mon Sep 17 00:00:00 2001 From: dlowzzxx Date: Fri, 4 Sep 2026 01:40:03 +0200 Subject: [PATCH 2/2] chore: remove redundant arithmetic comment in GLM-5.3 caching test --- tests/test_litellm/llms/baseten/chat/test_baseten_completions.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py b/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py index efa076a39182..d8b1b06fc305 100644 --- a/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py +++ b/tests/test_litellm/llms/baseten/chat/test_baseten_completions.py @@ -103,7 +103,6 @@ def test_glm_5_3_prompt_caching_cost(self, local_model_cost_map): prompt_cost, completion_cost = litellm.cost_per_token( "baseten/zai-org/GLM-5.3", usage_object=usage ) - # 600 un-cached * 1.4e-06 + 400 cached * 1.4e-07 expected_prompt_cost = (600 * 1.4e-06) + (400 * 1.4e-07) expected_completion_cost = 500 * 4.4e-06 assert prompt_cost == pytest.approx(expected_prompt_cost)