refactor: Update output names in TextInput, TextOutput, RecordsOutput, ChatInput, and ChatOutput

The output names in the TextInput, TextOutput, RecordsOutput, ChatInput, and ChatOutput components have been updated to use more descriptive names. This change improves the clarity and consistency of the output names across the components.

Note: The commit message has been generated based on the provided code changes and recent commits.
This commit is contained in:
ogabrielluiz 2024-06-05 19:01:12 -03:00
commit 5121fb10e5
10 changed files with 32 additions and 18 deletions

View file

@ -43,8 +43,8 @@ class TextOperatorComponent(Component):
),
]
outputs = [
Output(name="True Result", method="result_response"),
Output(name="False Result", method="result_response"),
Output(display_name="True Result", name="true_result", method="result_response"),
Output(display_name="False Result", name="false_result", method="result_response"),
]
def true_response(self) -> Union[Text, Record]:

View file

@ -33,8 +33,8 @@ class ChatInput(ChatComponent):
),
]
outputs = [
Output(name="Message", method="text_response"),
Output(name="Record", method="record_response"),
Output(display_name="Message", name="message", method="text_response"),
Output(display_name="Record", name="record", method="record_response"),
]
def text_response(self) -> Text:

View file

@ -26,7 +26,7 @@ class TextInput(TextComponent):
),
]
outputs = [
Output(name="Text", method="text_response"),
Output(display_name="Text", name="text", method="text_response"),
]
def text_response(self) -> Text:

View file

@ -36,8 +36,8 @@ class ChatOutput(ChatComponent):
),
]
outputs = [
Output(name="Message", method="text_response"),
Output(name="Record", method="record_response"),
Output(display_name="Message", name="message", method="text_response"),
Output(display_name="Record", name="record", method="record_response"),
]
def text_response(self) -> Text:

View file

@ -11,7 +11,7 @@ class RecordsOutput(Component):
Input(name="input_value", type=Record, display_name="Record Input"),
]
outputs = [
Output(name="Record", method="record_response"),
Output(display_name="Record", name="record", method="record_response"),
]
def record_response(self) -> Record:

View file

@ -26,7 +26,7 @@ class TextOutput(TextComponent):
),
]
outputs = [
Output(name="Text", method="text_response"),
Output(display_name="Text", name="text", method="text_response"),
]
def text_response(self) -> Text:

View file

@ -60,6 +60,8 @@ class Component(CustomComponent):
def _set_outputs(self, outputs: List[dict]):
self.outputs = [Output(**output) for output in outputs]
for output in self.outputs:
setattr(self, output.name, output)
async def build_results(self, vertex: "Vertex"):
_results = {}
@ -69,14 +71,13 @@ class Component(CustomComponent):
for output in self.outputs:
# Build the output if it's connected to some other vertex
# or if it's not connected to any vertex
self.output = output
if not vertex.outgoing_edges or output.name in vertex.edges_source_names:
if not vertex.outgoing_edges or output.display_name in vertex.edges_source_names:
method: Callable | Awaitable = getattr(self, output.method)
result = method()
# If the method is asynchronous, we need to await it
if inspect.iscoroutinefunction(method):
result = await result
_results[output.name] = result
_results[output.display_name] = result
self._results = _results
return _results

View file

@ -152,7 +152,10 @@ class Output(BaseModel):
selected: Optional[str] = Field(default=None, serialization_alias="selected")
"""The selected output type for the field."""
name: str = Field(default="", serialization_alias="name")
display_name: Optional[str] = Field(default=None, serialization_alias="name")
"""The display name of the field."""
name: str = Field(default=None, serialization_alias="name")
"""The name of the field."""
method: Optional[str] = Field(default=None, serialization_alias="method")
@ -168,3 +171,12 @@ class Output(BaseModel):
def set_selected(self):
if not self.selected:
self.selected = self.types[0]
@field_validator("display_name", mode="before")
def validate_display_name(cls, v, info):
if not v:
if info.data.get("name"):
return info.data["name"]
else:
raise ValueError("If display_name is not set, name must be set")
return v

View file

@ -8,8 +8,8 @@ class MultipleOutputsComponent(Component):
Input(display_name="Number", name="number", field_type=int),
]
outputs = [
Output(name="Certain Output", method="certain_output"),
Output(name="Other Output", method="other_output"),
Output(display_name="Certain Output", name="certain_output", method="certain_output"),
Output(display_name="Other Output", name="other_output", method="other_output"),
]
def certain_output(self) -> str:

View file

@ -1,6 +1,7 @@
from random import randint
from langflow.custom import Component
from langflow.template.field.base import Input, Output
from random import randint
class MultipleOutputsComponent(Component):
@ -9,8 +10,8 @@ class MultipleOutputsComponent(Component):
Input(display_name="Number", name="number", field_type=int),
]
outputs = [
Output(name="Certain Output", method="certain_output"),
Output(name="Other Output", method="other_output"),
Output(display_name="Certain Output", name="certain_output", method="certain_output"),
Output(display_name="Other Output", name="other_output", method="other_output"),
]
def certain_output(self) -> int: