From ce8a285003a83f3d139a441f3ae5b8f8e5f1b836 Mon Sep 17 00:00:00 2001 From: Alex Kondratev <56111142+soapun@users.noreply.github.com> Date: Sat, 11 Oct 2025 01:25:03 +0300 Subject: [PATCH] Validate embedding_dims in kuzu, fix #3556 (#3558) --- mem0/memory/kuzu_memory.py | 3 +++ tests/memory/test_kuzu.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/mem0/memory/kuzu_memory.py b/mem0/memory/kuzu_memory.py index 828e2e174..021fb2fe7 100644 --- a/mem0/memory/kuzu_memory.py +++ b/mem0/memory/kuzu_memory.py @@ -37,6 +37,9 @@ class MemoryGraph: ) self.embedding_dims = self.embedding_model.config.embedding_dims + if self.embedding_dims is None or self.embedding_dims <= 0: + raise ValueError(f"embedding_dims must be a positive integer. Given: {self.embedding_dims}") + self.db = kuzu.Database(self.config.graph_store.config.db) self.graph = kuzu.Connection(self.db) diff --git a/tests/memory/test_kuzu.py b/tests/memory/test_kuzu.py index 334912add..38a1a9ea0 100644 --- a/tests/memory/test_kuzu.py +++ b/tests/memory/test_kuzu.py @@ -79,6 +79,22 @@ class TestKuzu: assert kuzu_memory.llm == mock_llm assert kuzu_memory.threshold == 0.7 + @pytest.mark.parametrize( + "embedding_dims", + [None, 0, -1], + ) + @patch("mem0.memory.kuzu_memory.EmbedderFactory") + def test_kuzu_memory_initialization_invalid_embedding_dims( + self, mock_embedder_factory, embedding_dims, mock_config + ): + """Test that Kuzu memory raises ValuError when initialized with invalid embedding_dims""" + # Setup mocks + mock_embedding_model = Mock() + mock_embedding_model.config.embedding_dims = embedding_dims + mock_embedder_factory.create.return_value = mock_embedding_model + + with pytest.raises(ValueError, match="must be a positive"): + MemoryGraph(mock_config) @patch("mem0.memory.kuzu_memory.EmbedderFactory") @patch("mem0.memory.kuzu_memory.LlmFactory")