From 257721f86423d021afc219e13c55a70001b127d1 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 28 Feb 2024 00:12:04 -0300 Subject: [PATCH] Add LCVectorStoreComponent to langflow components --- .../components/vectorstores/base/__init__.py | 0 .../components/vectorstores/base/model.py | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/backend/langflow/components/vectorstores/base/__init__.py create mode 100644 src/backend/langflow/components/vectorstores/base/model.py diff --git a/src/backend/langflow/components/vectorstores/base/__init__.py b/src/backend/langflow/components/vectorstores/base/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/backend/langflow/components/vectorstores/base/model.py b/src/backend/langflow/components/vectorstores/base/model.py new file mode 100644 index 000000000..c6af714d6 --- /dev/null +++ b/src/backend/langflow/components/vectorstores/base/model.py @@ -0,0 +1,27 @@ +from typing import List + +from langchain_core.vectorstores import VectorStore + +from langflow import CustomComponent +from langflow.field_typing import Text +from langflow.schema import Record, docs_to_records + + +class LCVectorStoreComponent(CustomComponent): + + display_name: str = "LC Vector Store" + description: str = "Search a LC Vector Store for similar documents." + beta: bool = True + + def search_with_vector_store( + self, input_value: Text, search_type: str, vector_store: VectorStore + ) -> List[Record]: + + docs = [] + if input_value and isinstance(input_value, str): + docs = vector_store.search( + query=input_value, search_type=search_type.lower() + ) + else: + raise ValueError("Invalid inputs provided.") + return docs_to_records(docs)