mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-11 22:51:28 +00:00
feat(models): swap SCX.ai catalog to GLM-5.2 and Qwen3.8 Max
Replaces the five launch models with the two that SCX.ai now leads on. Both are live on api.scx.ai and both were verified against it for tool calling, json_object and json_schema output, reasoning, prompt caching, and, for Qwen3.8 Max, image input Pricing follows SCX's published USD rates. GLM-5.2 lands at $0.55/M input and $1.9255/M output, tracking the recent GLM-5.2 market repricing; Qwen3.8 Max at $1.815/M and $5.4461/M sits under the only other seller of that model, and is the first Qwen3.8 Max entry in the catalog Also corrects a metadata bug the removed entries carried: they set max_tokens equal to max_input_tokens, conflating the context window with the output cap. Both new entries declare a max_output_tokens of 131072, which is what the endpoint's own validator enforces The Add Model placeholder moves to scx-ai/GLM-5.2 now that MiniMax-M2.7 is no longer in the catalog
This commit is contained in:
parent
cabbc7ebfb
commit
8aa9d3dfe5
6 changed files with 75 additions and 133 deletions
|
|
@ -33546,72 +33546,40 @@
|
|||
"supports_vision": true,
|
||||
"source": "https://cloud.sambanova.ai/plans/pricing"
|
||||
},
|
||||
"scx-ai/gemma-4-31B-it": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"scx-ai/GLM-5.2": {
|
||||
"cache_read_input_token_cost": 1.375e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 131072,
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 9.1e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"output_cost_per_token": 1.9255e-06,
|
||||
"source": "https://llmgateway.io/models/glm-5.2/scx-ai-gp",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": false
|
||||
},
|
||||
"scx-ai/Qwen3.8-Max": {
|
||||
"cache_read_input_token_cost": 2.1e-07,
|
||||
"input_cost_per_token": 1.815e-06,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 131072,
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.4461e-06,
|
||||
"source": "https://llmgateway.io/models/qwen3.8-max/scx-ai-gp",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"scx-ai/gpt-oss-120b": {
|
||||
"input_cost_per_token": 1.7e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.5e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"scx-ai/Llama-4-Maverick-17B-128E-Instruct": {
|
||||
"input_cost_per_token": 5.3e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.62e-06,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"scx-ai/MiniMax-M2.7": {
|
||||
"cache_read_input_token_cost": 5e-08,
|
||||
"input_cost_per_token": 4.8e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 192000,
|
||||
"max_tokens": 192000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.79e-06,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"scx-ai/Qwen3-32B": {
|
||||
"input_cost_per_token": 3.6e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 33000,
|
||||
"max_tokens": 33000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 8.7e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"snowflake/claude-3-5-sonnet": {
|
||||
"litellm_provider": "snowflake",
|
||||
"max_input_tokens": 200000,
|
||||
|
|
|
|||
|
|
@ -2686,7 +2686,7 @@
|
|||
"default_value": null
|
||||
}
|
||||
],
|
||||
"default_model_placeholder": "scx-ai/MiniMax-M2.7"
|
||||
"default_model_placeholder": "scx-ai/GLM-5.2"
|
||||
},
|
||||
{
|
||||
"provider": "Snowflake",
|
||||
|
|
|
|||
|
|
@ -33637,72 +33637,40 @@
|
|||
"supports_vision": true,
|
||||
"source": "https://cloud.sambanova.ai/plans/pricing"
|
||||
},
|
||||
"scx-ai/gemma-4-31B-it": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"scx-ai/GLM-5.2": {
|
||||
"cache_read_input_token_cost": 1.375e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 131072,
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 9.1e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"output_cost_per_token": 1.9255e-06,
|
||||
"source": "https://llmgateway.io/models/glm-5.2/scx-ai-gp",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": false
|
||||
},
|
||||
"scx-ai/Qwen3.8-Max": {
|
||||
"cache_read_input_token_cost": 2.1e-07,
|
||||
"input_cost_per_token": 1.815e-06,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 131072,
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.4461e-06,
|
||||
"source": "https://llmgateway.io/models/qwen3.8-max/scx-ai-gp",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"scx-ai/gpt-oss-120b": {
|
||||
"input_cost_per_token": 1.7e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.5e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"scx-ai/Llama-4-Maverick-17B-128E-Instruct": {
|
||||
"input_cost_per_token": 5.3e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.62e-06,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_vision": true
|
||||
},
|
||||
"scx-ai/MiniMax-M2.7": {
|
||||
"cache_read_input_token_cost": 5e-08,
|
||||
"input_cost_per_token": 4.8e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 192000,
|
||||
"max_tokens": 192000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.79e-06,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"scx-ai/Qwen3-32B": {
|
||||
"input_cost_per_token": 3.6e-07,
|
||||
"litellm_provider": "scx-ai",
|
||||
"max_input_tokens": 33000,
|
||||
"max_tokens": 33000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 8.7e-07,
|
||||
"source": "https://scx.ai/pricing",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"snowflake/claude-3-5-sonnet": {
|
||||
"litellm_provider": "snowflake",
|
||||
"max_input_tokens": 200000,
|
||||
|
|
|
|||
|
|
@ -34,13 +34,13 @@ class TestSCXAIProviderConfig:
|
|||
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
|
||||
|
||||
model, provider, api_key, api_base = get_llm_provider(
|
||||
model="scx-ai/gpt-oss-120b",
|
||||
model="scx-ai/GLM-5.2",
|
||||
custom_llm_provider=None,
|
||||
api_base=None,
|
||||
api_key=None,
|
||||
)
|
||||
|
||||
assert model == "gpt-oss-120b"
|
||||
assert model == "GLM-5.2"
|
||||
assert provider == "scx-ai"
|
||||
assert api_base == "https://api.scx.ai/v1"
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ class TestSCXAIProviderConfig:
|
|||
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
|
||||
|
||||
model, provider, api_key, api_base = get_llm_provider(
|
||||
model="scx-ai/gpt-oss-120b",
|
||||
model="scx-ai/GLM-5.2",
|
||||
custom_llm_provider=None,
|
||||
api_base="https://custom.scx.ai/v1",
|
||||
api_key="sk-test",
|
||||
|
|
@ -62,7 +62,7 @@ class TestSCXAIProviderConfig:
|
|||
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
|
||||
|
||||
model, provider, api_key, api_base = get_llm_provider(
|
||||
model="gpt-oss-120b",
|
||||
model="GLM-5.2",
|
||||
custom_llm_provider=None,
|
||||
api_base="https://api.scx.ai/v1",
|
||||
api_key=None,
|
||||
|
|
@ -81,7 +81,7 @@ class TestSCXAIProviderConfig:
|
|||
optional_params = config.map_openai_params(
|
||||
non_default_params={"temperature": 1.7},
|
||||
optional_params={},
|
||||
model="gpt-oss-120b",
|
||||
model="GLM-5.2",
|
||||
drop_params=False,
|
||||
)
|
||||
assert optional_params["temperature"] == 1.0
|
||||
|
|
@ -89,7 +89,7 @@ class TestSCXAIProviderConfig:
|
|||
optional_params = config.map_openai_params(
|
||||
non_default_params={"temperature": 0.4},
|
||||
optional_params={},
|
||||
model="gpt-oss-120b",
|
||||
model="GLM-5.2",
|
||||
drop_params=False,
|
||||
)
|
||||
assert optional_params["temperature"] == 0.4
|
||||
|
|
@ -105,7 +105,7 @@ class TestSCXAIProviderConfig:
|
|||
optional_params = config.map_openai_params(
|
||||
non_default_params={"max_completion_tokens": 256},
|
||||
optional_params={},
|
||||
model="gpt-oss-120b",
|
||||
model="GLM-5.2",
|
||||
drop_params=False,
|
||||
)
|
||||
assert optional_params["max_tokens"] == 256
|
||||
|
|
@ -119,7 +119,7 @@ class TestSCXAIProviderConfig:
|
|||
{
|
||||
"model_name": "scx-chat",
|
||||
"litellm_params": {
|
||||
"model": "scx-ai/gpt-oss-120b",
|
||||
"model": "scx-ai/GLM-5.2",
|
||||
"api_key": "test-key",
|
||||
},
|
||||
}
|
||||
|
|
@ -132,13 +132,10 @@ class TestSCXAIProviderConfig:
|
|||
|
||||
class TestSCXAIModelMetadata:
|
||||
SCX_MODELS = (
|
||||
"scx-ai/Llama-4-Maverick-17B-128E-Instruct",
|
||||
"scx-ai/gemma-4-31B-it",
|
||||
"scx-ai/Qwen3-32B",
|
||||
"scx-ai/MiniMax-M2.7",
|
||||
"scx-ai/gpt-oss-120b",
|
||||
"scx-ai/GLM-5.2",
|
||||
"scx-ai/Qwen3.8-Max",
|
||||
)
|
||||
VISION_MODELS = ("scx-ai/Llama-4-Maverick-17B-128E-Instruct", "scx-ai/gemma-4-31B-it")
|
||||
VISION_MODELS = ("scx-ai/Qwen3.8-Max",)
|
||||
|
||||
@staticmethod
|
||||
def _load(path_parts):
|
||||
|
|
@ -160,8 +157,17 @@ class TestSCXAIModelMetadata:
|
|||
assert info["output_cost_per_token"] > 0
|
||||
assert info["supports_function_calling"] is True
|
||||
assert info["supports_tool_choice"] is True
|
||||
assert info["supports_reasoning"] is True
|
||||
assert info["supports_response_schema"] is True
|
||||
assert info.get("supports_vision", False) is (model in self.VISION_MODELS)
|
||||
|
||||
assert info["supports_prompt_caching"] is True
|
||||
assert 0 < info["cache_read_input_token_cost"] < info["input_cost_per_token"]
|
||||
|
||||
assert info["max_output_tokens"] == 131072
|
||||
assert info["max_tokens"] == info["max_output_tokens"]
|
||||
assert info["max_input_tokens"] >= 1_000_000
|
||||
|
||||
def test_scx_ai_models_synced_to_backup(self):
|
||||
model_cost = self._load(("model_prices_and_context_window.json",))
|
||||
backup = self._load(("litellm", "model_prices_and_context_window_backup.json"))
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ describe("provider_info_helpers", () => {
|
|||
});
|
||||
|
||||
it("should return an scx-ai model placeholder for SCX_AI provider", () => {
|
||||
expect(getPlaceholder(Providers.SCX_AI)).toBe("scx-ai/MiniMax-M2.7");
|
||||
expect(getPlaceholder(Providers.SCX_AI)).toBe("scx-ai/GLM-5.2");
|
||||
});
|
||||
|
||||
it("should return claude-3-opus placeholder for Anthropic provider", () => {
|
||||
|
|
|
|||
|
|
@ -444,7 +444,7 @@ export const getPlaceholder = (selectedProvider: string): string => {
|
|||
} else if (selectedProvider === Providers.ZAI) {
|
||||
return "zai/glm-4.5";
|
||||
} else if (selectedProvider === Providers.SCX_AI) {
|
||||
return "scx-ai/MiniMax-M2.7";
|
||||
return "scx-ai/GLM-5.2";
|
||||
} else {
|
||||
return "gpt-3.5-turbo";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue