From a752275fbd3dd423e7f063376dcfdff33d7c1c11 Mon Sep 17 00:00:00 2001 From: Adam Aghili Date: Mon, 25 May 2026 17:34:11 -0400 Subject: [PATCH] chore: add to deps and loose missing test --- src/backend/base/pyproject.toml | 2 ++ src/backend/base/uv.lock | 3 ++ .../bundles/mem0/test_mem0_component.py | 33 ++++++++++++++++++- uv.lock | 3 ++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/backend/base/pyproject.toml b/src/backend/base/pyproject.toml index 682a59323d..d6884a7f2f 100644 --- a/src/backend/base/pyproject.toml +++ b/src/backend/base/pyproject.toml @@ -25,6 +25,8 @@ dependencies = [ "gunicorn>=25.3.0,<27.0.0", "langchain~=1.2.0", "langchain-community~=0.4.1", + "langchain-qdrant>=1.0.0,<2.0.0", + "langchain-qdrant>=0.11.0", "langchain-core>=1.3.3,<2.0.0", "langchainhub~=0.1.15", "loguru>=0.7.1,<1.0.0", diff --git a/src/backend/base/uv.lock b/src/backend/base/uv.lock index 40fe5b9336..78331baf3d 100644 --- a/src/backend/base/uv.lock +++ b/src/backend/base/uv.lock @@ -6627,6 +6627,7 @@ dependencies = [ { name = "langchain-core" }, { name = "langchain-experimental" }, { name = "langchain-ibm", marker = "python_full_version < '3.14'" }, + { name = "langchain-qdrant" }, { name = "langchainhub" }, { name = "langgraph-checkpoint" }, { name = "lfx" }, @@ -7394,6 +7395,8 @@ requires-dist = [ { name = "langchain-ollama", marker = "extra == 'ollama'", specifier = "~=0.3.10" }, { name = "langchain-openai", marker = "extra == 'openai'", specifier = ">=1.1.6" }, { name = "langchain-pinecone", marker = "python_full_version < '3.14' and extra == 'pinecone'", specifier = "~=0.2.13" }, + { name = "langchain-qdrant", specifier = ">=0.11.0" }, + { name = "langchain-qdrant", specifier = ">=1.0.0,<2.0.0" }, { name = "langchain-qdrant", marker = "extra == 'qdrant-vectors'", specifier = ">=1.0.0,<2.0.0" }, { name = "langchain-sambanova", marker = "extra == 'sambanova'", specifier = "~=1.0.0" }, { name = "langchain-unstructured", marker = "extra == 'langchain-unstructured'", specifier = "~=1.0.0" }, diff --git a/src/backend/tests/unit/components/bundles/mem0/test_mem0_component.py b/src/backend/tests/unit/components/bundles/mem0/test_mem0_component.py index 1242d25413..3736831eac 100644 --- a/src/backend/tests/unit/components/bundles/mem0/test_mem0_component.py +++ b/src/backend/tests/unit/components/bundles/mem0/test_mem0_component.py @@ -1,7 +1,7 @@ """Unit tests for Mem0MemoryComponent cloud validation.""" import os -from unittest.mock import patch +from unittest.mock import Mock, patch import pytest from lfx.components.mem0.mem0_chat_memory import Mem0MemoryComponent @@ -29,3 +29,34 @@ class TestMem0CloudValidation: component = Mem0MemoryComponent(openai_api_key="test-key") component.build_mem0() mock_memory.assert_called_once() + + def test_build_search_results_uses_mem0_2_filters_for_search(self): + """Test that search uses filters for Mem0 2.x entity scoping.""" + memory = Mock() + memory.search.return_value = [{"memory": "hello"}] + component = Mem0MemoryComponent(_user_id="u").set( + existing_memory=memory, + ingest_message="hello", + search_query="x", + ) + + result = component.build_search_results() + + assert result == [{"memory": "hello"}] + memory.add.assert_called_once_with("hello", user_id="u", metadata={}) + memory.search.assert_called_once_with(query="x", filters={"user_id": "u"}) + + def test_build_search_results_uses_mem0_2_filters_for_get_all(self): + """Test that get_all uses filters for Mem0 2.x entity scoping.""" + memory = Mock() + memory.get_all.return_value = [{"memory": "hello"}] + component = Mem0MemoryComponent(_user_id="u").set( + existing_memory=memory, + ingest_message="hello", + ) + + result = component.build_search_results() + + assert result == [{"memory": "hello"}] + memory.add.assert_called_once_with("hello", user_id="u", metadata={}) + memory.get_all.assert_called_once_with(filters={"user_id": "u"}) diff --git a/uv.lock b/uv.lock index 046cd9510d..70b7152639 100644 --- a/uv.lock +++ b/uv.lock @@ -7129,6 +7129,7 @@ dependencies = [ { name = "langchain-core" }, { name = "langchain-experimental" }, { name = "langchain-ibm", marker = "python_full_version < '3.14'" }, + { name = "langchain-qdrant" }, { name = "langchainhub" }, { name = "langgraph-checkpoint" }, { name = "lfx" }, @@ -7896,6 +7897,8 @@ requires-dist = [ { name = "langchain-ollama", marker = "extra == 'ollama'", specifier = "~=0.3.10" }, { name = "langchain-openai", marker = "extra == 'openai'", specifier = ">=1.1.6" }, { name = "langchain-pinecone", marker = "python_full_version < '3.14' and extra == 'pinecone'", specifier = "~=0.2.13" }, + { name = "langchain-qdrant", specifier = ">=0.11.0" }, + { name = "langchain-qdrant", specifier = ">=1.0.0,<2.0.0" }, { name = "langchain-qdrant", marker = "extra == 'qdrant-vectors'", specifier = ">=1.0.0,<2.0.0" }, { name = "langchain-sambanova", marker = "extra == 'sambanova'", specifier = "~=1.0.0" }, { name = "langchain-unstructured", marker = "extra == 'langchain-unstructured'", specifier = "~=1.0.0" },