improve inputs and outputs

This commit is contained in:
Rodrigo 2024-06-17 22:54:25 -03:00
commit 81034f8ded
5 changed files with 27 additions and 36 deletions

View file

@ -15,7 +15,6 @@ class ChatInput(ChatComponent):
name="input_value", name="input_value",
display_name="Text", display_name="Text",
multiline=True, multiline=True,
input_types=[],
value="", value="",
info="Message to be passed as input.", info="Message to be passed as input.",
), ),
@ -41,7 +40,6 @@ class ChatInput(ChatComponent):
] ]
outputs = [ outputs = [
Output(display_name="Message", name="message", method="message_response"), Output(display_name="Message", name="message", method="message_response"),
Output(display_name="Text", name="text", method="text_response"),
] ]
def message_response(self) -> Message: def message_response(self) -> Message:
@ -57,7 +55,3 @@ class ChatInput(ChatComponent):
self.status = message self.status = message
return message return message
def text_response(self) -> Text:
text = self.message_response().text
return text

View file

@ -1,7 +1,7 @@
from langflow.base.io.text import TextComponent from langflow.base.io.text import TextComponent
from langflow.field_typing import Text
from langflow.inputs import TextInput from langflow.inputs import TextInput
from langflow.template import Output from langflow.template import Output
from langflow.schema.message import Message
class TextInputComponent(TextComponent): class TextInputComponent(TextComponent):
@ -20,5 +20,8 @@ class TextInputComponent(TextComponent):
Output(display_name="Text", name="text", method="text_response"), Output(display_name="Text", name="text", method="text_response"),
] ]
def text_response(self) -> Text: def text_response(self) -> Message:
return self.build(input_value=self.input_value) message = Message(
text=self.input_value,
)
return message

View file

@ -1,6 +1,5 @@
from langflow.base.io.chat import ChatComponent from langflow.base.io.chat import ChatComponent
from langflow.field_typing import Text from langflow.inputs import DropdownInput, TextInput
from langflow.inputs import DropdownInput, StrInput
from langflow.schema.message import Message from langflow.schema.message import Message
from langflow.template import Output from langflow.template import Output
@ -11,7 +10,7 @@ class ChatOutput(ChatComponent):
icon = "ChatOutput" icon = "ChatOutput"
inputs = [ inputs = [
StrInput( TextInput(
name="input_value", name="input_value",
display_name="Text", display_name="Text",
info="Message to be passed as output.", info="Message to be passed as output.",
@ -24,9 +23,9 @@ class ChatOutput(ChatComponent):
advanced=True, advanced=True,
info="Type of sender.", info="Type of sender.",
), ),
StrInput(name="sender_name", display_name="Sender Name", info="Name of the sender.", value="AI", advanced=True), TextInput(name="sender_name", display_name="Sender Name", info="Name of the sender.", value="AI", advanced=True),
StrInput(name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True), TextInput(name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True),
StrInput( TextInput(
name="data_template", name="data_template",
display_name="Data Template", display_name="Data Template",
value="{text}", value="{text}",
@ -36,7 +35,6 @@ class ChatOutput(ChatComponent):
] ]
outputs = [ outputs = [
Output(display_name="Message", name="message", method="message_response"), Output(display_name="Message", name="message", method="message_response"),
Output(display_name="Text", name="text", method="text_response"),
] ]
def message_response(self) -> Message: def message_response(self) -> Message:
@ -52,7 +50,3 @@ class ChatOutput(ChatComponent):
self.status = message self.status = message
return message return message
def text_response(self) -> Text:
text = self.message_response().text
return text

View file

@ -1,7 +1,7 @@
from langflow.base.io.text import TextComponent from langflow.base.io.text import TextComponent
from langflow.field_typing import Text
from langflow.template import Output from langflow.template import Output
from langflow.inputs import StrInput from langflow.inputs import TextInput
from langflow.schema.message import Message
class TextOutputComponent(TextComponent): class TextOutputComponent(TextComponent):
@ -10,15 +10,21 @@ class TextOutputComponent(TextComponent):
icon = "type" icon = "type"
inputs = [ inputs = [
StrInput( TextInput(
name="input_value", name="input_value",
display_name="Text", display_name="Text",
info="Text or Data to be passed as output.", info="Text to be passed as output.",
), ),
] ]
outputs = [ outputs = [
Output(display_name="Text", name="text", method="text_response"), Output(display_name="Text", name="text", method="text_response"),
] ]
def text_response(self) -> Text: def text_response(self) -> Message:
return self.build(input_value=self.input_value) message = Message(
text=self.input_value,
sender=self.sender,
sender_name=self.sender_name,
session_id=self.session_id,
)
return message

View file

@ -14,20 +14,14 @@ class PromptComponent(Component):
] ]
outputs = [ outputs = [
Output(display_name="Prompt", name="prompt", method="build_prompt"), Output(display_name="Prompt Message", name="prompt", method="build_prompt"),
Output(display_name="Text", name="text", method="format_prompt"),
] ]
async def format_prompt(self) -> str:
prompt = await self.build_prompt()
formatted_text = prompt.format_text()
self.status = formatted_text
return formatted_text
async def build_prompt( async def build_prompt(
self, self,
) -> Message: ) -> Message:
kwargs = {k: v for k, v in self._arguments.items() if k != "template"} kwargs = {k: v for k, v in self._arguments.items() if k != "template"}
prompt = await Message.from_template_and_variables(self.template, kwargs) prompt = await Message.from_template_and_variables(self.template, kwargs)
self.status = prompt.format_text() prompt_message = Message(text=prompt.format_text(), **kwargs)
return prompt self.status = prompt_message
return prompt_message