mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 11:14:04 +00:00
fix(init.py): set 'default_fallbacks' as a litellm_setting
This commit is contained in:
parent
a3fb6e8c34
commit
b054f39bab
3 changed files with 12 additions and 5 deletions
|
@ -219,6 +219,7 @@ max_end_user_budget: Optional[float] = None
|
||||||
#### RELIABILITY ####
|
#### RELIABILITY ####
|
||||||
request_timeout: Optional[float] = 6000
|
request_timeout: Optional[float] = 6000
|
||||||
num_retries: Optional[int] = None # per model endpoint
|
num_retries: Optional[int] = None # per model endpoint
|
||||||
|
default_fallbacks: Optional[List] = None
|
||||||
fallbacks: Optional[List] = None
|
fallbacks: Optional[List] = None
|
||||||
context_window_fallbacks: Optional[List] = None
|
context_window_fallbacks: Optional[List] = None
|
||||||
allowed_fails: int = 0
|
allowed_fails: int = 0
|
||||||
|
|
|
@ -263,11 +263,12 @@ class Router:
|
||||||
self.retry_after = retry_after
|
self.retry_after = retry_after
|
||||||
self.routing_strategy = routing_strategy
|
self.routing_strategy = routing_strategy
|
||||||
self.fallbacks = fallbacks or litellm.fallbacks
|
self.fallbacks = fallbacks or litellm.fallbacks
|
||||||
if default_fallbacks is not None:
|
if default_fallbacks is not None or litellm.default_fallbacks is not None:
|
||||||
|
_fallbacks = default_fallbacks or litellm.default_fallbacks
|
||||||
if self.fallbacks is not None:
|
if self.fallbacks is not None:
|
||||||
self.fallbacks.append({"*": default_fallbacks})
|
self.fallbacks.append({"*": _fallbacks})
|
||||||
else:
|
else:
|
||||||
self.fallbacks = [{"*": default_fallbacks}]
|
self.fallbacks = [{"*": _fallbacks}]
|
||||||
self.context_window_fallbacks = (
|
self.context_window_fallbacks = (
|
||||||
context_window_fallbacks or litellm.context_window_fallbacks
|
context_window_fallbacks or litellm.context_window_fallbacks
|
||||||
)
|
)
|
||||||
|
|
|
@ -1010,13 +1010,16 @@ async def test_service_unavailable_fallbacks(sync_mode):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("sync_mode", [True, False])
|
@pytest.mark.parametrize("sync_mode", [True, False])
|
||||||
|
@pytest.mark.parametrize("litellm_module_fallbacks", [True, False])
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_default_model_fallbacks(sync_mode):
|
async def test_default_model_fallbacks(sync_mode, litellm_module_fallbacks):
|
||||||
"""
|
"""
|
||||||
Related issue - https://github.com/BerriAI/litellm/issues/3623
|
Related issue - https://github.com/BerriAI/litellm/issues/3623
|
||||||
|
|
||||||
If model misconfigured, setup a default model for generic fallback
|
If model misconfigured, setup a default model for generic fallback
|
||||||
"""
|
"""
|
||||||
|
if litellm_module_fallbacks:
|
||||||
|
litellm.default_fallbacks = ["my-good-model"]
|
||||||
router = Router(
|
router = Router(
|
||||||
model_list=[
|
model_list=[
|
||||||
{
|
{
|
||||||
|
@ -1034,7 +1037,9 @@ async def test_default_model_fallbacks(sync_mode):
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
default_fallbacks=["my-good-model"],
|
default_fallbacks=(
|
||||||
|
["my-good-model"] if litellm_module_fallbacks == False else None
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
if sync_mode:
|
if sync_mode:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue