From 8270405a1c33a082e3d82daaf5032dde528c043f Mon Sep 17 00:00:00 2001 From: phernandez Date: Thu, 28 May 2026 19:33:31 -0500 Subject: [PATCH] fix(core): forward LiteLLM embedding dimensions Signed-off-by: phernandez --- src/basic_memory/repository/litellm_provider.py | 1 + tests/repository/test_litellm_provider.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/basic_memory/repository/litellm_provider.py b/src/basic_memory/repository/litellm_provider.py index 7a324b94..c92875eb 100644 --- a/src/basic_memory/repository/litellm_provider.py +++ b/src/basic_memory/repository/litellm_provider.py @@ -119,6 +119,7 @@ class LiteLLMEmbeddingProvider(EmbeddingProvider): params: dict[str, Any] = { "model": self.model_name, "input": batch, + "dimensions": self.dimensions, "drop_params": True, "timeout": self._timeout, } diff --git a/tests/repository/test_litellm_provider.py b/tests/repository/test_litellm_provider.py index 1a1d801a..e07ef463 100644 --- a/tests/repository/test_litellm_provider.py +++ b/tests/repository/test_litellm_provider.py @@ -131,6 +131,20 @@ async def test_litellm_provider_drop_params_always_set(monkeypatch): assert calls[0]["drop_params"] is True +@pytest.mark.asyncio +async def test_litellm_provider_forwards_configured_dimensions(monkeypatch): + """Configured output dimensions should be sent to LiteLLM.""" + calls = _install_litellm_stub(monkeypatch, dim=4) + provider = LiteLLMEmbeddingProvider( + model_name="openai/text-embedding-3-small", + dimensions=4, + ) + + await provider.embed_query("test") + + assert calls[0]["dimensions"] == 4 + + @pytest.mark.asyncio async def test_litellm_provider_uses_cohere_document_and_query_input_types(monkeypatch): """Cohere v3 embeddings require different input_type values per embedding role."""