Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 22 additions & 0 deletions chromadb/test/utils/test_embedding_function_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -652,3 +652,25 @@ def test_validate_config_sparse_embedding_functions(

# Validate the actual config using the embedding function's validate_config method
ef_class.validate_config(config)


class TestQwenEmbeddingFunctionTaskNone:
"""Regression tests for #7450: build_from_config should accept task=None."""

def test_build_from_config_with_task_none(self) -> None:
"""get_config -> build_from_config round-trip should work when task=None."""
import os

os.environ.setdefault("CHROMA_API_KEY", "dummy")
from chromadb.utils.embedding_functions.chroma_cloud_qwen_embedding_function import (
ChromaCloudQwenEmbeddingFunction as EF,
ChromaCloudQwenEmbeddingModel as M,
)

ef = EF(model=M.QWEN3_EMBEDDING_0p6B, task=None)
cfg = ef.get_config()
# validate_config should accept task=None (schema permits null)
EF.validate_config(cfg)
# build_from_config should NOT raise AssertionError for task=None
rebuilt = EF.build_from_config(cfg)
assert rebuilt is not None
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def build_from_config(config: Dict[str, Any]) -> "EmbeddingFunction[Documents]":
instructions = config.get("instructions")
api_key_env_var = config.get("api_key_env_var")

if model is None or task is None:
if model is None:
assert False, "Config is missing a required field"

# Deserialize instructions dict from string keys to enum keys
Expand Down