diff --git a/litellm/caching/redis_semantic_cache.py b/litellm/caching/redis_semantic_cache.py index 9cefd156294..e697c8c5269 100644 --- a/litellm/caching/redis_semantic_cache.py +++ b/litellm/caching/redis_semantic_cache.py @@ -101,6 +101,8 @@ class RedisSemanticCache(BaseCache): self.embedding_cache_ttl: Optional[int] = embedding_cache_ttl if embedding_cache_name is None: self.embedding_cache_name = self.DEFAULT_REDIS_EMBEDDINGS_CACHE_NAME + else: + self.embedding_cache_name = embedding_cache_name self._embeddings_cache: Optional[EmbeddingsCache] = None # Set up Redis connection diff --git a/tests/test_litellm/caching/test_redis_semantic_cache.py b/tests/test_litellm/caching/test_redis_semantic_cache.py index db473ea44a1..c226bd9047f 100644 --- a/tests/test_litellm/caching/test_redis_semantic_cache.py +++ b/tests/test_litellm/caching/test_redis_semantic_cache.py @@ -147,32 +147,50 @@ async def test_redis_semantic_cache_async_get_cache(monkeypatch): -@patch.dict( - "sys.modules", - { - "redisvl.extensions.llmcache": MagicMock(), - "redisvl.utils.vectorize": MagicMock(), - "redisvl.extensions.cache.embeddings": MagicMock(), - }, -) def test_redis_semantic_cache_embeddings_cache_enabled(monkeypatch): - from litellm.caching.redis_semantic_cache import RedisSemanticCache + # Create proper mocks for redisvl modules + mock_embeddings_cache_instance = MagicMock() + mock_embeddings_cache_class = MagicMock(return_value=mock_embeddings_cache_instance) + semantic_cache_mock = MagicMock() + custom_vectorizer_mock = MagicMock() - # Set environment variables - monkeypatch.setenv("REDIS_HOST", "localhost") - monkeypatch.setenv("REDIS_PORT", "6379") - monkeypatch.setenv("REDIS_PASSWORD", "test_password") + with patch.dict( + "sys.modules", + { + "redisvl.extensions.llmcache": MagicMock(SemanticCache=semantic_cache_mock), + "redisvl.utils.vectorize": MagicMock( + CustomTextVectorizer=custom_vectorizer_mock + ), + "redisvl.extensions.cache.embeddings": MagicMock( + EmbeddingsCache=mock_embeddings_cache_class + ), + }, + ): + from litellm.caching.redis_semantic_cache import RedisSemanticCache - cache = RedisSemanticCache( - similarity_threshold=0.8, - embedding_cache_enabled=True, - embedding_cache_name="test_embed_cache", - embedding_cache_ttl=123, - ) + # Set environment variables + monkeypatch.setenv("REDIS_HOST", "localhost") + monkeypatch.setenv("REDIS_PORT", "6379") + monkeypatch.setenv("REDIS_PASSWORD", "test_password") - # Ensure embeddings cache is initialized when enabled - assert cache.embedding_cache_enabled is True - assert cache.embeddings_cache is not None + cache = RedisSemanticCache( + similarity_threshold=0.8, + embedding_cache_enabled=True, + embedding_cache_name="test_embed_cache", + embedding_cache_ttl=123, + ) + + # Ensure embeddings cache is initialized when enabled + assert cache.embedding_cache_enabled is True + assert cache.embeddings_cache is not None + assert cache.embeddings_cache is mock_embeddings_cache_instance + + # Verify EmbeddingsCache was called with correct parameters + mock_embeddings_cache_class.assert_called_once_with( + name="test_embed_cache", + redis_url="redis://:test_password@localhost:6379", + ttl=123, + ) @pytest.mark.asyncio