From 42ce5b71124036fd7d7f0455ce98c87131874cc8 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 1 Feb 2024 09:29:20 -0300 Subject: [PATCH] Refactor RedisComponent to handle existing index in Redis --- .../langflow/components/vectorstores/Redis.py | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/backend/langflow/components/vectorstores/Redis.py b/src/backend/langflow/components/vectorstores/Redis.py index 95125095c..3cecd2ff5 100644 --- a/src/backend/langflow/components/vectorstores/Redis.py +++ b/src/backend/langflow/components/vectorstores/Redis.py @@ -1,11 +1,11 @@ -from typing import Optional, List, Union -from langflow import CustomComponent +from typing import Optional, Union from langchain.embeddings.base import Embeddings -from langchain.schema import BaseRetriever -from langchain.schema import Document from langchain_community.vectorstores import VectorStore from langchain_community.vectorstores.redis import Redis +from langchain_core.documents import Document +from langchain_core.retrievers import BaseRetriever + from langflow import CustomComponent @@ -57,10 +57,19 @@ class RedisComponent(CustomComponent): Returns: - VectorStore: The Vector Store object. """ - - return Redis.from_documents( - documents=documents, # type: ignore - embedding=embedding, - redis_url=redis_server_url, - index_name=redis_index_name, - ) + if documents is None: + redis_vs = Redis.from_existing_index( + embedding=embedding, + index_name=redis_index_name, + schema=None, + key_prefix=None, + redis_url=redis_server_url, + ) + else: + redis_vs = Redis.from_documents( + documents=documents, # type: ignore + embedding=embedding, + redis_url=redis_server_url, + index_name=redis_index_name, + ) + return redis_vs