diff --git a/src/backend/base/langflow/base/vectorstores/model.py b/src/backend/base/langflow/base/vectorstores/model.py index e68f826a9..191e45ad0 100644 --- a/src/backend/base/langflow/base/vectorstores/model.py +++ b/src/backend/base/langflow/base/vectorstores/model.py @@ -5,7 +5,7 @@ from typing import TYPE_CHECKING from loguru import logger from langflow.custom import Component -from langflow.field_typing import Retriever, Text, VectorStore +from langflow.field_typing import Text, VectorStore from langflow.helpers.data import docs_to_data from langflow.io import Output from langflow.schema import Data @@ -54,11 +54,6 @@ class LCVectorStoreComponent(Component): trace_type = "retriever" outputs = [ - Output( - display_name="Retriever", - name="base_retriever", - method="build_base_retriever", - ), Output( display_name="Search Results", name="search_results", @@ -69,7 +64,6 @@ class LCVectorStoreComponent(Component): def _validate_outputs(self) -> None: # At least these three outputs must be defined required_output_methods = [ - "build_base_retriever", "search_documents", "build_vector_store", ] @@ -115,22 +109,6 @@ class LCVectorStoreComponent(Component): self.status = data return data - def build_base_retriever(self) -> Retriever: # type: ignore[type-var] - """Builds the BaseRetriever object.""" - if self._cached_vector_store is not None: - vector_store = self._cached_vector_store - else: - vector_store = self.build_vector_store() - self._cached_vector_store = vector_store - - if hasattr(vector_store, "as_retriever"): - retriever = vector_store.as_retriever(**self.get_retriever_kwargs()) - if self.status is None: - self.status = "Retriever built successfully." - return retriever - msg = f"Vector Store {vector_store.__class__.__name__} does not have an as_retriever method." - raise ValueError(msg) - def search_documents(self) -> list[Data]: """Search for documents in the vector store.""" search_query: str = self.search_query diff --git a/src/backend/base/langflow/components/tools/__init__.py b/src/backend/base/langflow/components/tools/__init__.py index 3039c846f..17b5d11c6 100644 --- a/src/backend/base/langflow/components/tools/__init__.py +++ b/src/backend/base/langflow/components/tools/__init__.py @@ -11,7 +11,6 @@ from .google_search_api import GoogleSearchAPIComponent from .google_serper_api import GoogleSerperAPIComponent from .python_code_structured_tool import PythonCodeStructuredTool from .python_repl import PythonREPLToolComponent -from .retriever import RetrieverToolComponent from .search_api import SearchAPIComponent from .searxng import SearXNGToolComponent from .serp_api import SerpAPIComponent @@ -39,7 +38,6 @@ __all__ = [ "GoogleSerperAPIComponent", "PythonCodeStructuredTool", "PythonREPLToolComponent", - "RetrieverToolComponent", "SearXNGToolComponent", "SearchAPIComponent", "SerpAPIComponent", diff --git a/src/backend/base/langflow/components/tools/retriever.py b/src/backend/base/langflow/components/tools/retriever.py deleted file mode 100644 index 051439b70..000000000 --- a/src/backend/base/langflow/components/tools/retriever.py +++ /dev/null @@ -1,30 +0,0 @@ -from langchain_core.tools import create_retriever_tool - -from langflow.custom import CustomComponent -from langflow.field_typing import BaseRetriever, Tool - - -class RetrieverToolComponent(CustomComponent): - display_name = "RetrieverTool" - description = "Tool for interacting with retriever" - name = "RetrieverTool" - - def build_config(self): - return { - "retriever": { - "display_name": "Retriever", - "info": "Retriever to interact with", - "type": BaseRetriever, - "input_types": ["Retriever"], - }, - "name": {"display_name": "Name", "info": "Name of the tool"}, - "description": {"display_name": "Description", "info": "Description of the tool"}, - } - - def build(self, retriever: BaseRetriever, name: str, description: str, **kwargs) -> Tool: - _ = kwargs - return create_retriever_tool( - retriever=retriever, - name=name, - description=description, - ) diff --git a/src/backend/tests/integration/components/astra/test_astra_component.py b/src/backend/tests/integration/components/astra/test_astra_component.py index a132997b7..a5414c0d3 100644 --- a/src/backend/tests/integration/components/astra/test_astra_component.py +++ b/src/backend/tests/integration/components/astra/test_astra_component.py @@ -55,9 +55,7 @@ async def test_base(astradb_client: AstraDB): ), }, ) - from langchain_core.vectorstores import VectorStoreRetriever - assert isinstance(results["base_retriever"], VectorStoreRetriever) assert results["vector_store"] is not None assert results["search_results"] == [] assert astradb_client.collection(BASIC_COLLECTION) diff --git a/src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py b/src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py index 565aca8eb..183f1740b 100644 --- a/src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py +++ b/src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py @@ -36,7 +36,6 @@ def ingestion_graph(): api_endpoint="https://astra.example.com", token="token", # noqa: S106 ) - vector_store.set_on_output(name="base_retriever", value="mock_retriever", cache=True) vector_store.set_on_output(name="search_results", value=[Data(text="This is a test file.")], cache=True) return Graph(file_component, vector_store) @@ -64,7 +63,6 @@ def rag_graph(): ], cache=True, ) - rag_vector_store.set_on_output(name="base_retriever", value="mock_retriever", cache=True) parse_data = ParseDataComponent(_id="parse-data-123") parse_data.set(data=rag_vector_store.search_documents) prompt_component = PromptComponent(_id="prompt-123")