diff --git a/src/backend/base/langflow/components/experimental/__init__.py b/src/backend/base/langflow/components/experimental/__init__.py index 550d4d6dd..15c0806db 100644 --- a/src/backend/base/langflow/components/experimental/__init__.py +++ b/src/backend/base/langflow/components/experimental/__init__.py @@ -13,6 +13,8 @@ from .SplitText import SplitTextComponent from .SQLExecutor import SQLExecutorComponent from .SubFlow import SubFlowComponent from .ConditionalRouter import ConditionalRouterComponent +from .SelectivePassThrough import SelectivePassThroughComponent + __all__ = [ "AgentComponent", @@ -30,4 +32,5 @@ __all__ = [ "SplitTextComponent", "SQLExecutorComponent", "SubFlowComponent", + "SelectivePassThroughComponent", ] diff --git a/src/backend/base/langflow/components/vectorstores/Chroma.py b/src/backend/base/langflow/components/vectorstores/Chroma.py index 0fc167dbb..1d7d89cef 100644 --- a/src/backend/base/langflow/components/vectorstores/Chroma.py +++ b/src/backend/base/langflow/components/vectorstores/Chroma.py @@ -7,7 +7,7 @@ from loguru import logger from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.base.vectorstores.utils import chroma_collection_to_data -from langflow.inputs import BoolInput, DataInput, DropdownInput, HandleInput, IntInput, MessageInput, StrInput +from langflow.inputs import BoolInput, DataInput, DropdownInput, HandleInput, IntInput, StrInput, TextInput from langflow.schema import Data if TYPE_CHECKING: @@ -39,7 +39,7 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): display_name="Code", advanced=True, ), - MessageInput( + TextInput( name="search_query", display_name="Search Query", is_list=True, @@ -139,7 +139,8 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): collection_name=self.collection_name, ) - self.status = chroma_collection_to_data(chroma.get(self.limit)) + self._add_documents_to_vector_store(chroma) + self.status = chroma_collection_to_data(chroma.get(limit=self.limit)) return chroma def _add_documents_to_vector_store(self, vector_store: "Chroma") -> None: @@ -177,7 +178,7 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): """ Search for documents in the Chroma vector store. """ - if not self.search_query.text: + if not self.search_query: self.status = "" return @@ -194,6 +195,6 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): self.search_query = self.search_query[0] search_results = self.search_with_vector_store( - self.search_query.text, self.search_type, vector_store, k=self.number_of_results + self.search_query, self.search_type, vector_store, k=self.number_of_results ) return search_results diff --git a/src/backend/base/langflow/schema/schema.py b/src/backend/base/langflow/schema/schema.py index acd1dbab5..884c35e8e 100644 --- a/src/backend/base/langflow/schema/schema.py +++ b/src/backend/base/langflow/schema/schema.py @@ -75,9 +75,14 @@ def get_message(payload): def build_logs(vertex, result) -> dict: logs = dict() - payload = result[0]._results + component_instance = result[0] for index, output in enumerate(vertex.outputs): - output_result = payload.get(output["name"]) + if component_instance.status is None: + payload = component_instance._results + output_result = payload.get(output["name"]) + else: + payload = component_instance._artifacts + output_result = payload.get(output["name"]).get("raw") message = get_message(output_result) _type = get_type(output_result)