mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-10 22:41:41 +00:00
test(embeddings): add parametrized tests for dimensions drop_params behaviour
Cover six scenarios for openai_compatible_providers: - non-text-embedding-3 model + drop_params=True → dimensions dropped - non-text-embedding-3 model + drop_params=False → dimensions forwarded - text-embedding-3-* model (any drop_params) → dimensions always kept Regression test for #23119.
This commit is contained in:
parent
fe622faa04
commit
9df6e2a1de
1 changed files with 46 additions and 0 deletions
|
|
@ -474,6 +474,52 @@ def test_cohere_embedding_optional_params():
|
|||
assert optional_params is not None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"model,custom_llm_provider,drop_params,expect_dimensions",
|
||||
[
|
||||
# hosted_vllm with a non-text-embedding-3 model and drop_params=True → drop
|
||||
("intfloat/e5-large-v2", "hosted_vllm", True, False),
|
||||
# hosted_vllm with a non-text-embedding-3 model and drop_params=False → keep
|
||||
("intfloat/e5-large-v2", "hosted_vllm", False, True),
|
||||
# text-embedding-3 model should always keep dimensions
|
||||
("text-embedding-3-small", "openai_compatible_providers", True, True),
|
||||
("text-embedding-3-small", "openai_compatible_providers", False, True),
|
||||
# openrouter with a non-text-embedding-3 model and drop_params=True → drop
|
||||
("jina-embeddings-v3", "openai_compatible_providers", True, False),
|
||||
# openrouter without drop_params → keep (don't block providers that support dimensions)
|
||||
("jina-embeddings-v3", "openai_compatible_providers", False, True),
|
||||
],
|
||||
)
|
||||
def test_openai_compatible_embedding_dimensions_drop_params(
|
||||
model, custom_llm_provider, drop_params, expect_dimensions
|
||||
):
|
||||
"""dimensions should only be dropped for non-text-embedding-3 models when drop_params=True.
|
||||
|
||||
Regression test for https://github.com/BerriAI/litellm/issues/23119 — hosted_vllm
|
||||
endpoints return 422 when `dimensions` is forwarded, but other compatible providers
|
||||
(Jina AI, Cohere via OpenRouter) legitimately support the parameter.
|
||||
"""
|
||||
from litellm import get_optional_params_embeddings
|
||||
|
||||
result = get_optional_params_embeddings(
|
||||
model=model,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
input="hello",
|
||||
dimensions=512,
|
||||
drop_params=drop_params,
|
||||
)
|
||||
if expect_dimensions:
|
||||
assert "dimensions" in result, (
|
||||
f"Expected 'dimensions' to be present for model={model!r}, "
|
||||
f"drop_params={drop_params}"
|
||||
)
|
||||
else:
|
||||
assert "dimensions" not in result, (
|
||||
f"Expected 'dimensions' to be dropped for model={model!r}, "
|
||||
f"drop_params={drop_params}"
|
||||
)
|
||||
|
||||
|
||||
def validate_model_cost_values(model_data, exceptions=None):
|
||||
"""
|
||||
Validates that cost values in model data do not exceed 1.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue