diff --git a/src/backend/langflow/graph/vertex/base.py b/src/backend/langflow/graph/vertex/base.py index 61c50eda5..5e723b989 100644 --- a/src/backend/langflow/graph/vertex/base.py +++ b/src/backend/langflow/graph/vertex/base.py @@ -25,6 +25,7 @@ class Vertex: self._parse_data() self._built_object = None self._built = False + self.artifacts: Dict[str, Any] = {} def _parse_data(self) -> None: self.data = self._data["data"] @@ -195,11 +196,17 @@ class Vertex: # and return the instance try: - self._built_object = loading.instantiate_class( + result = loading.instantiate_class( node_type=self.vertex_type, base_type=self.base_type, params=self.params, ) + # Result could be the _built_object or + # (_built_object, dict) tuple + if isinstance(result, tuple): + self._built_object, self.artifacts = result + else: + self._built_object = result except Exception as exc: raise ValueError( f"Error building node {self.vertex_type}: {str(exc)}" diff --git a/src/backend/langflow/interface/initialize/loading.py b/src/backend/langflow/interface/initialize/loading.py index bbaa1f131..1a075184e 100644 --- a/src/backend/langflow/interface/initialize/loading.py +++ b/src/backend/langflow/interface/initialize/loading.py @@ -124,7 +124,7 @@ def instantiate_prompt(node_type, class_object, params): if format_kwargs: prompt = prompt.partial(**format_kwargs) - return prompt + return prompt, format_kwargs def instantiate_tool(node_type, class_object, params):