mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-21 00:21:49 +00:00
Merge 7ea4a24a36 into 252c71c0b2
This commit is contained in:
commit
da302a6c56
2 changed files with 79 additions and 1 deletions
|
|
@ -3523,6 +3523,9 @@ def get_optional_params_embeddings(
|
|||
special_params: Final = passed_params.pop("kwargs")
|
||||
|
||||
drop_params = normalize_drop_params(passed_params.pop("drop_params", None))
|
||||
resolved_drop_params = drop_params
|
||||
if resolved_drop_params is None:
|
||||
resolved_drop_params = normalize_drop_params(litellm.drop_params)
|
||||
additional_drop_params = passed_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
|
||||
|
|
@ -3568,7 +3571,7 @@ def get_optional_params_embeddings(
|
|||
non_default_params=non_default_params,
|
||||
optional_params={},
|
||||
model=model,
|
||||
drop_params=drop_params if drop_params is not None else False,
|
||||
drop_params=resolved_drop_params if resolved_drop_params is not None else False,
|
||||
)
|
||||
# Provider-only params (e.g. Cohere input_type) are not in
|
||||
# OPENAI_EMBEDDING_PARAMS, so embedding_pre_process drops them from
|
||||
|
|
@ -3842,6 +3845,14 @@ def get_optional_params_embeddings(
|
|||
optional_params = non_default_params
|
||||
else:
|
||||
optional_params = non_default_params
|
||||
if (
|
||||
resolved_drop_params is True
|
||||
and (custom_llm_provider == "azure" or custom_llm_provider in litellm.openai_compatible_providers)
|
||||
and "text-embedding-3" not in model
|
||||
and "dimensions" in optional_params
|
||||
and "dimensions" not in (allowed_openai_params or ())
|
||||
):
|
||||
optional_params.pop("dimensions", None)
|
||||
|
||||
final_params = add_provider_specific_params_to_optional_params(
|
||||
optional_params=optional_params,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,67 @@
|
|||
import pytest
|
||||
|
||||
import litellm
|
||||
|
||||
|
||||
@pytest.mark.parametrize("provider", ["azure", "together_ai"])
|
||||
def test_embedding_dimensions_drop_params_for_openai_compatible_provider(provider, monkeypatch):
|
||||
monkeypatch.setattr(litellm, "drop_params", False)
|
||||
dropped = litellm.utils.get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
drop_params=True,
|
||||
)
|
||||
assert "dimensions" not in dropped
|
||||
|
||||
monkeypatch.setattr(litellm, "drop_params", True)
|
||||
dropped_globally = litellm.utils.get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
)
|
||||
assert "dimensions" not in dropped_globally
|
||||
|
||||
monkeypatch.setattr(litellm, "drop_params", False)
|
||||
preserved = litellm.utils.get_optional_params_embeddings(
|
||||
model=f"{provider}/dummy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
)
|
||||
assert preserved["dimensions"] == 512
|
||||
|
||||
monkeypatch.setattr(litellm, "drop_params", True)
|
||||
model_supported = litellm.utils.get_optional_params_embeddings(
|
||||
model=f"{provider}/text-embedding-3-small",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
)
|
||||
assert model_supported["dimensions"] == 512
|
||||
|
||||
explicitly_allowed = litellm.utils.get_optional_params_embeddings(
|
||||
model=f"{provider}/legacy-model",
|
||||
custom_llm_provider=provider,
|
||||
dimensions=512,
|
||||
allowed_openai_params=["dimensions"],
|
||||
)
|
||||
assert explicitly_allowed["dimensions"] == 512
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("provider", "model"),
|
||||
[
|
||||
("nvidia_nim", "nvidia_nim/nv-embedqa-e5-v5"),
|
||||
("fireworks_ai", "fireworks_ai/nomic-ai/nomic-embed-text-v1.5"),
|
||||
("dashscope", "dashscope/text-embedding-v3"),
|
||||
("hosted_vllm", "hosted_vllm/Qwen/Qwen3-Embedding-0.6B"),
|
||||
],
|
||||
)
|
||||
def test_embedding_dimensions_preserved_for_provider_mappings(provider, model):
|
||||
optional_params = litellm.utils.get_optional_params_embeddings(
|
||||
model=model,
|
||||
custom_llm_provider=provider,
|
||||
dimensions=128,
|
||||
drop_params=True,
|
||||
)
|
||||
|
||||
assert optional_params["dimensions"] == 128
|
||||
Loading…
Add table
Reference in a new issue