feat: Add CreateListComponent for creating a list of texts

This commit adds a new component called CreateListComponent, which is responsible for creating a list of texts. The component takes in one or more texts as input and outputs a list of Data objects. This component is useful for scenarios where a list of texts needs to be processed or manipulated.

The CreateListComponent class is added to the helpers module in the langflow.components package. It includes the necessary inputs and outputs, as well as a create_list method that generates the list of Data objects based on the input texts.

This commit also includes some minor changes to other files, such as renaming the UUIDGeneratorComponent to IDGeneratorComponent and updating import statements.
This commit is contained in:
Rodrigo 2024-06-28 11:02:24 -03:00 committed by Gabriel Luiz Freitas Almeida
commit 093fa018f1
6 changed files with 41 additions and 16 deletions

View file

@ -0,0 +1,27 @@
from langflow.custom import Component
from langflow.inputs import StrInput
from langflow.schema import Data
from langflow.template import Output
class CreateListComponent(Component):
display_name = "Create List"
description = "Creates a list of texts."
icon = "list"
inputs = [
StrInput(
name="texts",
display_name="Texts",
info="Enter one or more texts.",
is_list=True,
),
]
outputs = [
Output(display_name="Data List", name="list", method="create_list"),
]
def create_list(self) -> list[Data]:
data = [Data(text=text) for text in self.texts]
self.status = data
return data

View file

@ -5,7 +5,7 @@ from langflow.custom import CustomComponent
from langflow.schema.dotdict import dotdict
class UUIDGeneratorComponent(CustomComponent):
class IDGeneratorComponent(CustomComponent):
display_name = "ID Generator"
description = "Generates a unique ID."

View file

@ -1,22 +1,25 @@
from .CombineText import CombineTextComponent
from .CustomComponent import CustomComponent
from .FilterData import FilterDataComponent
from .IDGenerator import UUIDGeneratorComponent
from .IDGenerator import IDGeneratorComponent
from .Memory import MemoryComponent
from .MergeData import MergeDataComponent
from .ParseData import ParseDataComponent
from .SplitText import SplitTextComponent
from .StoreMessage import StoreMessageComponent
from .CreateList import CreateListComponent
__all__ = [
"CreateListComponent",
"CombineTextComponent",
"CustomComponent",
"FilterDataComponent",
"UUIDGeneratorComponent",
"IDGeneratorComponent",
"MemoryComponent",
"MergeDataComponent",
"ParseDataComponent",
"SplitTextComponent",
"StoreMessageComponent",
"ListComponent",
]

View file

@ -66,21 +66,17 @@ class ConditionalRouterComponent(Component):
def true_response(self) -> Message:
result = self.evaluate_condition(self.input_text, self.match_text, self.operator, self.case_sensitive)
if result:
self.stop("false_result")
response = self.message if self.message else self.input_text
self.status = response
return response
self.status = self.message
return self.message
else:
self.stop("true_result")
return Message()
return None
def false_response(self) -> Message:
result = self.evaluate_condition(self.input_text, self.match_text, self.operator, self.case_sensitive)
if not result:
self.stop("true_result")
response = self.message if self.message else self.input_text
self.status = response
return response
self.status = self.message
return self.message
else:
self.stop("false_result")
return Message()
return None

View file

@ -3,7 +3,6 @@ from langflow.io import MessageInput
from langflow.schema.message import Message
from langflow.template import Output
class PassMessageComponent(Component):
display_name = "Pass"
description = "Forwards the input message, unchanged."
@ -19,7 +18,7 @@ class PassMessageComponent(Component):
name="ignored_message",
display_name="Ignored Message",
info="A second message to be ignored. Used as a workaround for continuity.",
advanced=True,
advanced=True
),
]