feat(models): add pricing and metadata for 5 scx-ai models

This commit is contained in:
bhuvan2134686 2026-07-27 17:21:58 +10:00
parent 8f61073af8
commit 7f48431e22
3 changed files with 172 additions and 0 deletions

View file

@ -33546,6 +33546,72 @@
"supports_vision": true,
"source": "https://cloud.sambanova.ai/plans/pricing"
},
"scx-ai/gemma-4-31B-it": {
"input_cost_per_token": 3e-07,
"litellm_provider": "scx-ai",
"max_input_tokens": 131000,
"max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 9.1e-07,
"source": "https://scx.ai/pricing",
"supports_function_calling": 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

@ -33637,6 +33637,72 @@
"supports_vision": true,
"source": "https://cloud.sambanova.ai/plans/pricing"
},
"scx-ai/gemma-4-31B-it": {
"input_cost_per_token": 3e-07,
"litellm_provider": "scx-ai",
"max_input_tokens": 131000,
"max_tokens": 131000,
"mode": "chat",
"output_cost_per_token": 9.1e-07,
"source": "https://scx.ai/pricing",
"supports_function_calling": 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

@ -128,3 +128,43 @@ class TestSCXAIProviderConfig:
assert len(router.model_list) == 1
assert router.model_list[0]["model_name"] == "scx-chat"
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",
)
VISION_MODELS = ("scx-ai/Llama-4-Maverick-17B-128E-Instruct", "scx-ai/gemma-4-31B-it")
@staticmethod
def _load(path_parts):
import json
from pathlib import Path
json_path = Path(__file__).parents[4].joinpath(*path_parts)
with open(json_path) as f:
return json.load(f)
def test_scx_ai_models_registered_with_correct_metadata(self):
model_cost = self._load(("model_prices_and_context_window.json",))
for model in self.SCX_MODELS:
info = model_cost.get(model)
assert info is not None, f"{model} missing from model_prices_and_context_window.json"
assert info["litellm_provider"] == "scx-ai"
assert info["mode"] == "chat"
assert info["input_cost_per_token"] > 0
assert info["output_cost_per_token"] > 0
assert info["supports_function_calling"] is True
assert info["supports_tool_choice"] is True
assert info.get("supports_vision", False) is (model in self.VISION_MODELS)
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"))
for model in self.SCX_MODELS:
assert model in backup, f"{model} missing from backup json"
assert backup[model] == model_cost[model], f"{model} differs between root and backup json"