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 typing import Optional, Union
from langflow import CustomComponent
from langchain.embeddings.base import Embeddings 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 import VectorStore
from langchain_community.vectorstores.redis import Redis from langchain_community.vectorstores.redis import Redis
from langchain_core.documents import Document
from langchain_core.retrievers import BaseRetriever
from langflow import CustomComponent from langflow import CustomComponent
@ -57,10 +57,19 @@ class RedisComponent(CustomComponent):
Returns: Returns:
- VectorStore: The Vector Store object. - VectorStore: The Vector Store object.
""" """
if documents is None:
return Redis.from_documents( redis_vs = Redis.from_existing_index(
documents=documents, # type: ignore embedding=embedding,
embedding=embedding, index_name=redis_index_name,
redis_url=redis_server_url, schema=None,
index_name=redis_index_name, 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