From 24c52758990244bd2ee8ac6bb41657cfeacbae46 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Tue, 18 Jun 2024 12:55:36 -0300 Subject: [PATCH 1/3] refactor: Add SelectivePassThroughComponent to experimental components and update ChromaVectorStoreComponent --- .../base/langflow/components/experimental/__init__.py | 3 +++ .../base/langflow/components/vectorstores/Chroma.py | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) 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..ae9b08ede 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, MessageInput, 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,6 +139,7 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): collection_name=self.collection_name, ) + self._add_documents_to_vector_store(chroma) self.status = chroma_collection_to_data(chroma.get(self.limit)) return chroma @@ -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 From ccf63c98ff1e886d66890e276a4d6054cef32511 Mon Sep 17 00:00:00 2001 From: ogabrielluiz Date: Tue, 18 Jun 2024 12:58:45 -0300 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=90=9B=20(Chroma.py):=20Fix=20passing?= =?UTF-8?q?=20limit=20parameter=20to=20chroma=5Fcollection=5Fto=5Fdata=20m?= =?UTF-8?q?ethod=20to=20correctly=20retrieve=20data=20from=20Chroma=20vect?= =?UTF-8?q?or=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/base/langflow/components/vectorstores/Chroma.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/base/langflow/components/vectorstores/Chroma.py b/src/backend/base/langflow/components/vectorstores/Chroma.py index ae9b08ede..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, TextInput +from langflow.inputs import BoolInput, DataInput, DropdownInput, HandleInput, IntInput, StrInput, TextInput from langflow.schema import Data if TYPE_CHECKING: @@ -140,7 +140,7 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent): ) self._add_documents_to_vector_store(chroma) - self.status = chroma_collection_to_data(chroma.get(self.limit)) + self.status = chroma_collection_to_data(chroma.get(limit=self.limit)) return chroma def _add_documents_to_vector_store(self, vector_store: "Chroma") -> None: From ba354ae1192a6677143a313d6e91fe0613e0ec08 Mon Sep 17 00:00:00 2001 From: ogabrielluiz Date: Tue, 18 Jun 2024 12:59:10 -0300 Subject: [PATCH 3/3] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20(schema.py):=20refacto?= =?UTF-8?q?r=20code=20to=20handle=20different=20types=20of=20component=5Fi?= =?UTF-8?q?nstance=20status=20and=20retrieve=20output=20results=20accordin?= =?UTF-8?q?gly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/base/langflow/schema/schema.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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)