mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-25 01:02:15 +00:00
test(utils): cover embedding drop params in CI
Signed-off-by: Hasnaat Hussain <hasnaat.hussain.2@gmail.com>
This commit is contained in:
parent
b5bf48331c
commit
6b2a5e7deb
3 changed files with 32 additions and 98 deletions
|
|
@ -3430,14 +3430,10 @@ def get_optional_params_embeddings(
|
|||
special_params: Final = passed_params.pop("kwargs")
|
||||
|
||||
drop_params = passed_params.pop("drop_params", None)
|
||||
if drop_params is None:
|
||||
drop_params = special_params.pop("drop_params", None)
|
||||
if drop_params is None:
|
||||
drop_params = litellm.drop_params or False
|
||||
|
||||
additional_drop_params = passed_params.pop("additional_drop_params", None)
|
||||
if additional_drop_params is None:
|
||||
additional_drop_params = special_params.pop("additional_drop_params", None)
|
||||
|
||||
allowed_openai_params = passed_params.pop("allowed_openai_params", None) or []
|
||||
# Remove function objects from passed_params to avoid JSON serialization errors
|
||||
|
|
|
|||
|
|
@ -1120,6 +1120,38 @@ def test_lm_studio_embedding_params():
|
|||
assert len(optional_params) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize("provider", ["azure", "together_ai"])
|
||||
def test_embedding_dimensions_drop_params_for_openai_compatible_provider(provider):
|
||||
previous_drop_params = litellm.drop_params
|
||||
try:
|
||||
litellm.drop_params = False
|
||||
dropped = get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
drop_params=True,
|
||||
)
|
||||
assert "dimensions" not in dropped
|
||||
|
||||
litellm.drop_params = True
|
||||
dropped_globally = get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
)
|
||||
assert "dimensions" not in dropped_globally
|
||||
|
||||
litellm.drop_params = False
|
||||
preserved = get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
)
|
||||
assert preserved["dimensions"] == 512
|
||||
finally:
|
||||
litellm.drop_params = previous_drop_params
|
||||
|
||||
|
||||
def test_ollama_pydantic_obj():
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
|
|
|||
|
|
@ -160,97 +160,3 @@ def test_openai_non_text_embedding_3_drop_params_global():
|
|||
assert "dimensions" not in optional_params
|
||||
finally:
|
||||
litellm.drop_params = prev_drop_params
|
||||
|
||||
|
||||
def test_azure_and_openai_compatible_drop_params():
|
||||
"""
|
||||
Verify that dimensions parameter is correctly dropped on Azure and OpenAI compatible calls
|
||||
when drop_params is True (either per-call or globally), while preserving it otherwise.
|
||||
"""
|
||||
prev_drop_params = litellm.drop_params
|
||||
|
||||
# 1. Test Azure drop_params=True (per-call)
|
||||
litellm.drop_params = False
|
||||
model, custom_llm_provider, _, _ = get_llm_provider(
|
||||
model="azure/dummy-model"
|
||||
)
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
drop_params=True,
|
||||
)
|
||||
assert "dimensions" not in optional_params
|
||||
|
||||
# 2. Test Azure drop_params=True (global)
|
||||
litellm.drop_params = True
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
)
|
||||
assert "dimensions" not in optional_params
|
||||
|
||||
# 3. Test Azure drop_params=False (preserves dimensions parameter)
|
||||
litellm.drop_params = False
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
)
|
||||
assert "dimensions" in optional_params
|
||||
assert optional_params["dimensions"] == 512
|
||||
|
||||
# 4. Test OpenAI compatible (Together AI) drop_params=True (per-call)
|
||||
model, custom_llm_provider, _, _ = get_llm_provider(
|
||||
model="together_ai/dummy-model"
|
||||
)
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
drop_params=True,
|
||||
)
|
||||
assert "dimensions" not in optional_params
|
||||
|
||||
# 5. Test OpenAI compatible (Together AI) drop_params=True (global)
|
||||
litellm.drop_params = True
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
)
|
||||
assert "dimensions" not in optional_params
|
||||
|
||||
# 6. Test OpenAI compatible (Together AI) drop_params=False (preserves dimensions parameter)
|
||||
litellm.drop_params = False
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
)
|
||||
assert "dimensions" in optional_params
|
||||
assert optional_params["dimensions"] == 512
|
||||
|
||||
# Restore state
|
||||
litellm.drop_params = prev_drop_params
|
||||
|
||||
|
||||
@pytest.mark.parametrize("provider", ["nvidia_nim", "lm_studio", "fireworks_ai"])
|
||||
def test_dedicated_openai_compatible_providers_drop_dimensions(provider):
|
||||
"""Keep dedicated provider mappings reachable when dimensions is dropped."""
|
||||
prev_drop_params = litellm.drop_params
|
||||
litellm.drop_params = False
|
||||
try:
|
||||
model, custom_llm_provider, _, _ = get_llm_provider(
|
||||
model=f"{provider}/dummy-model"
|
||||
)
|
||||
optional_params = get_optional_params_embeddings(
|
||||
model=model,
|
||||
dimensions=512,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
drop_params=True,
|
||||
)
|
||||
assert "dimensions" not in optional_params
|
||||
finally:
|
||||
litellm.drop_params = prev_drop_params
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue