Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
f3fbbc3
Add ScaleDown model pricing
soham96 Oct 2, 2026
296a445
Price all ScaleDown models at $0.04 per million and drop unverified c…
soham96 Oct 9, 2026
14169e9
Price all ScaleDown models at $0.05 per million input tokens
soham96 Oct 9, 2026
a18239c
Add regression tests for the ScaleDown pricing entries
soham96 Oct 9, 2026
9d210e3
Cite the source of the ScaleDown rate in the pricing tests and type them
soham96 Oct 9, 2026
ac42323
Add ScaleDown as a chat provider
soham96 Oct 2, 2026
fc831fa
Route ScaleDown domain models to the native API and stop trusting usa…
soham96 Oct 9, 2026
24643ab
Move ScaleDown translation into llms/ and address review findings
soham96 Oct 9, 2026
7b238b8
Refuse prompt-bearing extra_body keys and empty-key fallback to the e…
soham96 Oct 9, 2026
7fe394a
Read compress token usage from the real response shape
soham96 Oct 9, 2026
cc99d0c
Accept the router's max_retries and word the extra_body error clearly
soham96 Oct 9, 2026
d25edcb
Return extracted fields from extract, follow schema refs, and meet th…
soham96 Oct 9, 2026
2b29c5e
Fix stream_options, schema-guided extract cleaning, document input an…
soham96 Oct 10, 2026
9840354
Cut recursive schema refs at the cycle and cap the expanded entity count
soham96 Oct 10, 2026
a8da902
Bound ref chains and schema nesting so long schemas fail cleanly
soham96 Oct 10, 2026
669e99e
chore(scaledown): merge main and align dispatch types
moe-berri Oct 10, 2026
a69da5b
fix(scaledown): support native classify and preserve extraction results
moe-berri Oct 10, 2026
f235d5d
test(scaledown): include provider regressions in CI shard
moe-berri Oct 10, 2026
d38071c
fix(scaledown): pass registry typing and bounded recursion checks
moe-berri Oct 10, 2026
12c8b6c
docs(scaledown): capture provider setup before and after
moe-berri Oct 10, 2026
c43a947
fix(scaledown): preserve nullable schemas and reject malformed requests
moe-berri Oct 10, 2026
bb3ebe4
fix(scaledown): isolate provider dispatch from existing providers
moe-berri Oct 10, 2026
e712f21
fix(scaledown): preserve the shared dispatch return contract
moe-berri Oct 10, 2026
858f1f3
fix(scaledown): preserve failure logging and reject lossy schemas
moe-berri Oct 10, 2026
f3a2209
fix(scaledown): keep timeout typing annotation on its expression
moe-berri Oct 10, 2026
3cdcd95
chore(scaledown): sync provider with main
moe-berri Oct 10, 2026
ac8366c
fix(scaledown): resolve escaped extraction schema references
moe-berri Oct 10, 2026
3bfe409
fix(scaledown): annotate the bounded reference walk
moe-berri Oct 10, 2026
0c942ec
chore(scaledown): remove unused loop suppression
moe-berri Oct 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/assets/scaledown/provider-after.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/scaledown/provider-before.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .github/workflows/test-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ jobs:
tests/unit/llms/sagemaker
tests/unit/llms/sail
tests/unit/llms/sambanova
tests/unit/llms/scaledown
tests/unit/llms/sap
tests/unit/llms/scaleway
tests/unit/llms/searchapi
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,7 @@ Set `LITELLM_PROXY_API_BASE` and `LITELLM_PROXY_API_KEY` and every model call th
| [Sagemaker Chat (`sagemaker_chat`)](https://docs.litellm.ai/docs/providers/aws_sagemaker) | ✅ | ✅ | ✅ | | | | | | | |
| [Sail (`sail`)](https://docs.litellm.ai/docs/providers/sail) | ✅ | ✅ | ✅ | | | | | | | |
| [Sambanova (`sambanova`)](https://docs.litellm.ai/docs/providers/sambanova) | ✅ | ✅ | ✅ | | | | | | | |
| [ScaleDown (`scaledown`)](https://docs.litellm.ai/docs/providers/scaledown) | ✅ | | | | | | | | | |
| [Snowflake (`snowflake`)](https://docs.litellm.ai/docs/providers/snowflake) | ✅ | ✅ | ✅ | | | | | | | |
| [Strands Decider (`strands_decider`)](https://docs.litellm.ai/docs/providers) | | | | | | | | | | |
| [Text Completion Codestral (`text-completion-codestral`)](https://docs.litellm.ai/docs/providers/codestral) | ✅ | ✅ | ✅ | | | | | | | |
Expand Down
10 changes: 9 additions & 1 deletion litellm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,7 @@ def identify(event_details):
nvidia_riva_models: Set = set()
soniox_models: Set = set()
sambanova_models: Set = set()
scaledown_models: Final[Set[str]] = set() # Price reloads update this registry through existing references.
sambanova_embedding_models: Set = set()
novita_models: Set = set()
assemblyai_models: Set = set()
Expand Down Expand Up @@ -756,7 +757,7 @@ def is_openai_finetune_model(key: str) -> bool:
return key.startswith("ft:") and not key.count(":") > 1


def _populate_provider_model_sets(model_cost_map: Dict) -> None:
def _populate_provider_model_sets(model_cost_map: Mapping[str, Mapping[str, object]]) -> None:
for key, value in model_cost_map.items():
if value.get("litellm_provider") == "openai" and not is_openai_finetune_model(key):
open_ai_chat_completion_models.add(key)
Expand Down Expand Up @@ -918,6 +919,8 @@ def _populate_provider_model_sets(model_cost_map: Dict) -> None:
soniox_models.add(key)
elif value.get("litellm_provider") == "sambanova":
sambanova_models.add(key)
elif value.get("litellm_provider") == "scaledown":
scaledown_models.add(key)
elif value.get("litellm_provider") == "sambanova-embedding-models":
sambanova_embedding_models.add(key)
elif value.get("litellm_provider") == "novita":
Expand Down Expand Up @@ -1106,6 +1109,7 @@ def add_known_models(model_cost_map: Optional[Dict] = None):
| nvidia_riva_models
| soniox_models
| sambanova_models
| scaledown_models
| azure_text_models
| novita_models
| assemblyai_models
Expand Down Expand Up @@ -1215,6 +1219,7 @@ def _build_models_by_provider() -> dict:
"nvidia_riva": nvidia_riva_models,
"soniox": soniox_models,
"sambanova": sambanova_models | sambanova_embedding_models,
"scaledown": scaledown_models,
"novita": novita_models,
"nebius": nebius_models | nebius_embedding_models,
"aiml": aiml_models,
Expand Down Expand Up @@ -2054,6 +2059,9 @@ def set_global_gitlab_config(config: Mapping[str, object]) -> None:
from .llms.featherless_ai.chat.transformation import (
FeatherlessAIConfig as FeatherlessAIConfig,
)
from .llms.scaledown.chat.transformation import (
ScaleDownChatConfig as ScaleDownChatConfig,
)
from .llms.cerebras.chat import CerebrasConfig as CerebrasConfig
from .llms.nadir.chat.transformation import NadirConfig as NadirConfig
from .llms.baseten.chat import BasetenConfig as BasetenConfig
Expand Down
5 changes: 5 additions & 0 deletions litellm/_lazy_imports_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@
"NvidiaNimConfig",
"NvidiaNimEmbeddingConfig",
"FeatherlessAIConfig",
"ScaleDownChatConfig",
"CerebrasConfig",
"NadirConfig",
"BasetenConfig",
Expand Down Expand Up @@ -1103,6 +1104,10 @@
".llms.featherless_ai.chat.transformation",
"FeatherlessAIConfig",
),
"ScaleDownChatConfig": (
".llms.scaledown.chat.transformation",
"ScaleDownChatConfig",
),
"CerebrasConfig": (".llms.cerebras.chat", "CerebrasConfig"),
"NadirConfig": (".llms.nadir.chat.transformation", "NadirConfig"),
"BasetenConfig": (".llms.baseten.chat", "BasetenConfig"),
Expand Down
1 change: 1 addition & 0 deletions litellm/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,7 @@ class ServerStreamingClassification(str, Enum):
"lemonade",
"docker_model_runner",
"amazon_nova",
"scaledown",
]

# Resolving these providers runs an OAuth device flow (their provider info IS the login), so any
Expand Down
3 changes: 3 additions & 0 deletions litellm/llms/scaledown/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .chat.transformation import ScaleDownChatConfig, ScaleDownError
Comment thread
greptile-apps[bot] marked this conversation as resolved.

__all__ = ["ScaleDownChatConfig", "ScaleDownError"]
3 changes: 3 additions & 0 deletions litellm/llms/scaledown/chat/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .transformation import ScaleDownChatConfig, ScaleDownError

__all__ = ["ScaleDownChatConfig", "ScaleDownError"]
Loading
Loading