Refactor RedisComponent to handle existing index in Redis

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-02-01 09:29:20 -03:00
commit 42ce5b7112

View file

@ -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