refactor: Update ChatInput and ChatOutput to use Message instead of Record for input and output
This commit is contained in:
parent
cf99a5ffa7
commit
4d11c76476
3 changed files with 49 additions and 40 deletions
|
|
@ -1,6 +1,6 @@
|
|||
from langflow.base.io.chat import ChatComponent
|
||||
from langflow.field_typing import Text
|
||||
from langflow.schema import Record
|
||||
from langflow.schema.message import Message
|
||||
from langflow.template import Input, Output
|
||||
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ class ChatInput(ChatComponent):
|
|||
Input(
|
||||
name="input_value",
|
||||
type=str,
|
||||
display_name="Message",
|
||||
display_name="Text",
|
||||
multiline=True,
|
||||
input_types=[],
|
||||
info="Message to be passed as input.",
|
||||
|
|
@ -34,24 +34,23 @@ class ChatInput(ChatComponent):
|
|||
]
|
||||
outputs = [
|
||||
Output(display_name="Message", name="message", method="text_response"),
|
||||
Output(display_name="Record", name="record", method="record_response"),
|
||||
Output(display_name="Record", name="record", method="message_response"),
|
||||
]
|
||||
|
||||
def text_response(self) -> Text:
|
||||
result = self.input_value
|
||||
if self.session_id and isinstance(result, (Record, str)):
|
||||
if self.session_id and isinstance(result, (Message, str)):
|
||||
self.store_message(result, self.session_id, self.sender, self.sender_name)
|
||||
return result
|
||||
|
||||
def record_response(self) -> Record:
|
||||
record = Record(
|
||||
data={
|
||||
"text": self.input_value,
|
||||
"sender": self.sender,
|
||||
"sender_name": self.sender_name,
|
||||
"session_id": self.session_id,
|
||||
},
|
||||
def message_response(self) -> Message:
|
||||
message = Message(
|
||||
text=self.input_value,
|
||||
sender=self.sender,
|
||||
sender_name=self.sender_name,
|
||||
session_id=self.session_id,
|
||||
)
|
||||
if self.session_id and isinstance(record, (Record, str)):
|
||||
self.store_message(record, self.session_id, self.sender, self.sender_name)
|
||||
return record
|
||||
if self.session_id and isinstance(message, (Message, str)):
|
||||
self.store_message(message)
|
||||
self.status = message
|
||||
return message
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
from langflow.custom import CustomComponent
|
||||
from langflow.field_typing import Input
|
||||
from langflow.custom import Component
|
||||
from langflow.field_typing import Input, Output
|
||||
from langflow.field_typing.prompt import Prompt
|
||||
|
||||
|
||||
class PromptComponent(CustomComponent):
|
||||
class PromptComponent(Component):
|
||||
display_name: str = "Prompt"
|
||||
description: str = "Create a prompt template with dynamic variables."
|
||||
icon = "prompts"
|
||||
|
|
@ -11,14 +11,26 @@ class PromptComponent(CustomComponent):
|
|||
def build_config(self):
|
||||
return {
|
||||
"template": Input(display_name="Template"),
|
||||
"code": Input(advanced=True),
|
||||
}
|
||||
|
||||
async def build(
|
||||
inputs = [
|
||||
Input(name="template", type=Prompt, display_name="Template"),
|
||||
]
|
||||
|
||||
outputs = [
|
||||
Output(display_name="Prompt", 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(
|
||||
self,
|
||||
template: Prompt,
|
||||
**kwargs,
|
||||
) -> Prompt:
|
||||
prompt = await Prompt.from_template_and_variables(template, kwargs)
|
||||
prompt = await Prompt.from_template_and_variables(self.template, self.kwargs)
|
||||
self.status = prompt.format_text()
|
||||
return prompt
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from langflow.base.io.chat import ChatComponent
|
||||
from langflow.field_typing import Text
|
||||
from langflow.schema import Record
|
||||
from langflow.schema.message import Message
|
||||
from langflow.template import Input, Output
|
||||
|
||||
|
||||
|
|
@ -11,7 +11,7 @@ class ChatOutput(ChatComponent):
|
|||
|
||||
inputs = [
|
||||
Input(
|
||||
name="input_value", type=str, display_name="Message", multiline=True, info="Message to be passed as output."
|
||||
name="input_value", type=str, display_name="Text", multiline=True, info="Message to be passed as output."
|
||||
),
|
||||
Input(
|
||||
name="sender",
|
||||
|
|
@ -36,26 +36,24 @@ class ChatOutput(ChatComponent):
|
|||
),
|
||||
]
|
||||
outputs = [
|
||||
Output(display_name="Message", name="message", method="text_response"),
|
||||
Output(display_name="Record", name="record", method="record_response"),
|
||||
Output(display_name="Text", name="text", method="text_response"),
|
||||
Output(display_name="Message", name="message", method="message_response"),
|
||||
]
|
||||
|
||||
def text_response(self) -> Text:
|
||||
result = self.input_value
|
||||
if self.session_id and isinstance(result, (Record, str)):
|
||||
if self.session_id and isinstance(result, (Message, str)):
|
||||
self.store_message(result, self.session_id, self.sender, self.sender_name)
|
||||
return result
|
||||
|
||||
def record_response(self) -> Record:
|
||||
record = Record(
|
||||
data={
|
||||
"message": self.input_value,
|
||||
"sender": self.sender,
|
||||
"sender_name": self.sender_name,
|
||||
"session_id": self.session_id,
|
||||
"template": self.record_template or "",
|
||||
}
|
||||
def message_response(self) -> Message:
|
||||
message = Message(
|
||||
text=self.input_value,
|
||||
sender=self.sender,
|
||||
sender_name=self.sender_name,
|
||||
session_id=self.session_id,
|
||||
)
|
||||
if self.session_id and isinstance(record, (Record, str)):
|
||||
self.store_message(record, self.session_id, self.sender, self.sender_name)
|
||||
return record
|
||||
if self.session_id and isinstance(message, (Message, str)):
|
||||
self.store_message(message)
|
||||
self.status = message
|
||||
return message
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue