Spaces:
Running
Running
# from langflow.field_typing import Data | |
from typing import Any | |
from langflow.custom import Component | |
from langflow.io import BoolInput, MessageTextInput, Output | |
from langflow.schema import Data | |
class DynamicOutputComponent(Component): | |
display_name = "Dynamic Output Component" | |
description = "Use as a template to create your own component." | |
documentation: str = "http://docs.langflow.org/components/custom" | |
icon = "custom_components" | |
name = "DynamicOutputComponent" | |
inputs = [ | |
MessageTextInput(name="input_value", display_name="Input Value", value="Hello, World!"), | |
BoolInput(name="show_output", display_name="Show Output", value=True, real_time_refresh=True), | |
] | |
outputs = [ | |
Output(display_name="Output", name="output", method="build_output"), | |
] | |
def update_outputs(self, frontend_node: dict, field_name: str, field_value: Any): | |
if field_name == "show_output": | |
if field_value: | |
frontend_node["outputs"].append( | |
Output(display_name="Tool Output", name="tool_output", method="build_output") | |
) | |
else: | |
# remove the output | |
frontend_node["outputs"] = [ | |
output for output in frontend_node["outputs"] if output["name"] != "tool_output" | |
] | |
return frontend_node | |
def build_output(self) -> Data: | |
data = Data(value=self.input_value) | |
self.status = data | |
return data | |