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:
bhuvan2134686 2026-08-07 11:22:01 +10:00
parent cabbc7ebfb
commit 8aa9d3dfe5
6 changed files with 75 additions and 133 deletions

View file

@ -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,

View file

@ -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",

View file

@ -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,

View file

@ -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"))

View file

@ -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", () => {

View file

@ -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";
}