mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-10 00:28:31 +00:00
Fix issue #2599: Memory.search() unexpected keyword argument 'metadata' with local Mem0
Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
@@ -117,6 +117,8 @@ class Mem0Storage(Storage):
|
|||||||
# Discard the filters for now since we create the filters
|
# Discard the filters for now since we create the filters
|
||||||
# automatically when the crew is created.
|
# automatically when the crew is created.
|
||||||
results = self.memory.search(**params)
|
results = self.memory.search(**params)
|
||||||
|
if isinstance(results, dict) and 'results' in results:
|
||||||
|
return [r for r in results['results'] if r["score"] >= score_threshold]
|
||||||
return [r for r in results if r["score"] >= score_threshold]
|
return [r for r in results if r["score"] >= score_threshold]
|
||||||
|
|
||||||
def _get_user_id(self) -> str:
|
def _get_user_id(self) -> str:
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from crewai.task import Task
|
|||||||
class MockCrew:
|
class MockCrew:
|
||||||
def __init__(self, memory_config):
|
def __init__(self, memory_config):
|
||||||
self.memory_config = memory_config
|
self.memory_config = memory_config
|
||||||
|
self.agents = [] # Add empty agents list for testing
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@@ -153,3 +154,46 @@ def test_mem0_storage_with_explict_config(
|
|||||||
mem0_storage_with_memory_client_using_explictly_config.memory_config
|
mem0_storage_with_memory_client_using_explictly_config.memory_config
|
||||||
== expected_config
|
== expected_config
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_mem0_storage_external_memory_search(
|
||||||
|
mem0_storage_with_memory_client_using_config_from_crew, mock_mem0_memory_client
|
||||||
|
):
|
||||||
|
"""Test that Mem0Storage search correctly handles external memory with metadata parameter."""
|
||||||
|
mem0_storage_with_memory_client_using_config_from_crew.memory_type = "external"
|
||||||
|
|
||||||
|
mock_search_response = {
|
||||||
|
'results': [
|
||||||
|
{
|
||||||
|
'id': '1',
|
||||||
|
'score': 0.9,
|
||||||
|
'metadata': {'type': 'external'},
|
||||||
|
'memory': 'test external memory 1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': '2',
|
||||||
|
'score': 0.8,
|
||||||
|
'metadata': {'type': 'external'},
|
||||||
|
'memory': 'test external memory 2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': '3',
|
||||||
|
'score': 0.3, # Below threshold
|
||||||
|
'metadata': {'type': 'external'},
|
||||||
|
'memory': 'test external memory 3'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
mock_mem0_memory_client.search.return_value = mock_search_response
|
||||||
|
|
||||||
|
results = mem0_storage_with_memory_client_using_config_from_crew.search(
|
||||||
|
"test query",
|
||||||
|
score_threshold=0.5
|
||||||
|
)
|
||||||
|
|
||||||
|
mock_mem0_memory_client.search.assert_called_once()
|
||||||
|
|
||||||
|
assert len(results) == 2
|
||||||
|
assert results[0]['score'] == 0.9
|
||||||
|
assert results[1]['score'] == 0.8
|
||||||
|
|||||||
Reference in New Issue
Block a user