{ "id": "e9380216-9300-41a1-bc35-7ee92fe4b30d", "data": { "nodes": [ { "id": "ChatInput-irFJf", "type": "genericNode", "position": { "x": 180, "y": 200.296875 }, "data": { "type": "ChatInput", "node": { "template": { "_type": "Component", "files": { "trace_as_metadata": true, "file_path": "", "fileTypes": [ "txt", "md", "mdx", "csv", "json", "yaml", "yml", "xml", "html", "htm", "pdf", "docx", "py", "sh", "sql", "js", "ts", "tsx", "jpg", "jpeg", "png", "bmp", "image" ], "list": true, "required": false, "placeholder": "", "show": true, "value": "", "name": "files", "display_name": "Files", "advanced": true, "dynamic": false, "info": "Files to be sent with the message.", "title_case": false, "type": "file" }, "code": { "type": "code", "required": true, "placeholder": "", "list": false, "show": true, "multiline": true, "value": "from langflow.base.data.utils import IMG_FILE_TYPES, TEXT_FILE_TYPES\nfrom langflow.base.io.chat import ChatComponent\nfrom langflow.inputs import BoolInput\nfrom langflow.io import DropdownInput, FileInput, MessageTextInput, MultilineInput, Output\nfrom langflow.memory import store_message\nfrom langflow.schema.message import Message\n\n\nclass ChatInput(ChatComponent):\n display_name = \"Chat Input\"\n description = \"Get chat inputs from the Playground.\"\n icon = \"ChatInput\"\n name = \"ChatInput\"\n\n inputs = [\n MultilineInput(\n name=\"input_value\",\n display_name=\"Text\",\n value=\"\",\n info=\"Message to be passed as input.\",\n ),\n BoolInput(\n name=\"store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[\"Machine\", \"User\"],\n value=\"User\",\n info=\"Type of sender.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=\"User\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\", display_name=\"Session ID\", info=\"Session ID for the message.\", advanced=True\n ),\n FileInput(\n name=\"files\",\n display_name=\"Files\",\n file_types=TEXT_FILE_TYPES + IMG_FILE_TYPES,\n info=\"Files to be sent with the message.\",\n advanced=True,\n is_list=True,\n ),\n ]\n outputs = [\n Output(display_name=\"Message\", name=\"message\", method=\"message_response\"),\n ]\n\n def message_response(self) -> Message:\n message = Message(\n text=self.input_value,\n sender=self.sender,\n sender_name=self.sender_name,\n session_id=self.session_id,\n files=self.files,\n )\n\n if self.session_id and isinstance(message, Message) and isinstance(message.text, str):\n store_message(\n message,\n flow_id=self.graph.flow_id,\n )\n self.message.value = message\n\n self.status = message\n return message\n", "fileTypes": [], "file_path": "", "password": false, "name": "code", "advanced": true, "dynamic": true, "info": "", "load_from_db": false, "title_case": false }, "input_value": { "trace_as_input": true, "multiline": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "", "name": "input_value", "display_name": "Text", "advanced": false, "input_types": [ "Message" ], "dynamic": false, "info": "Message to be passed as input.", "title_case": false, "type": "str" }, "sender": { "trace_as_metadata": true, "options": [ "Machine", "User" ], "required": false, "placeholder": "", "show": true, "value": "User", "name": "sender", "display_name": "Sender Type", "advanced": true, "dynamic": false, "info": "Type of sender.", "title_case": false, "type": "str" }, "sender_name": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "User", "name": "sender_name", "display_name": "Sender Name", "advanced": true, "input_types": [ "Message" ], "dynamic": false, "info": "Name of the sender.", "title_case": false, "type": "str" }, "session_id": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "", "name": "session_id", "display_name": "Session ID", "advanced": true, "input_types": [ "Message" ], "dynamic": false, "info": "Session ID for the message.", "title_case": false, "type": "str" }, "store_message": { "trace_as_metadata": true, "list": false, "required": false, "placeholder": "", "show": true, "value": true, "name": "store_message", "display_name": "Store Messages", "advanced": true, "dynamic": false, "info": "Store the message in the history.", "title_case": false, "type": "bool" } }, "description": "Get chat inputs from the Playground.", "icon": "ChatInput", "base_classes": [ "Message" ], "display_name": "Chat Input", "documentation": "", "custom_fields": {}, "output_types": [], "pinned": false, "conditional_paths": [], "frozen": false, "outputs": [ { "types": [ "Message" ], "selected": "Message", "name": "message", "display_name": "Message", "method": "message_response", "value": "__UNDEFINED__", "cache": true } ], "field_order": [ "input_value", "store_message", "sender", "sender_name", "session_id", "files" ], "beta": false, "edited": false }, "id": "ChatInput-irFJf", "description": "Get chat inputs from the Playground.", "display_name": "Chat Input" }, "selected": false, "width": 384, "height": 309 }, { "id": "TextInput-tcoZg", "type": "genericNode", "position": { "x": 186, "y": 549.296875 }, "data": { "type": "TextInput", "node": { "template": { "_type": "Component", "code": { "type": "code", "required": true, "placeholder": "", "list": false, "show": true, "multiline": true, "value": "from langflow.base.io.text import TextComponent\nfrom langflow.io import MessageTextInput, Output\nfrom langflow.schema.message import Message\n\n\nclass TextInputComponent(TextComponent):\n display_name = \"Text Input\"\n description = \"Get text inputs from the Playground.\"\n icon = \"type\"\n name = \"TextInput\"\n\n inputs = [\n MessageTextInput(\n name=\"input_value\",\n display_name=\"Text\",\n info=\"Text to be passed as input.\",\n ),\n ]\n outputs = [\n Output(display_name=\"Text\", name=\"text\", method=\"text_response\"),\n ]\n\n def text_response(self) -> Message:\n message = Message(\n text=self.input_value,\n )\n return message\n", "fileTypes": [], "file_path": "", "password": false, "name": "code", "advanced": true, "dynamic": true, "info": "", "load_from_db": false, "title_case": false }, "input_value": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "AI", "name": "input_value", "display_name": "Text", "advanced": false, "input_types": [ "Message" ], "dynamic": false, "info": "Text to be passed as input.", "title_case": false, "type": "str" } }, "description": "Get text inputs from the Playground.", "icon": "type", "base_classes": [ "Message" ], "display_name": "Text Input", "documentation": "", "custom_fields": {}, "output_types": [], "pinned": false, "conditional_paths": [], "frozen": false, "outputs": [ { "types": [ "Message" ], "selected": "Message", "name": "text", "display_name": "Text", "method": "text_response", "value": "__UNDEFINED__", "cache": true } ], "field_order": [ "input_value" ], "beta": false, "edited": false }, "id": "TextInput-tcoZg" }, "selected": true, "width": 384, "height": 309, "positionAbsolute": { "x": 186, "y": 549.296875 }, "dragging": false }, { "id": "ChatOutput-dJRst", "type": "genericNode", "position": { "x": 820, "y": 224.296875 }, "data": { "type": "ChatOutput", "node": { "template": { "_type": "Component", "code": { "type": "code", "required": true, "placeholder": "", "list": false, "show": true, "multiline": true, "value": "from langflow.base.io.chat import ChatComponent\nfrom langflow.inputs import BoolInput\nfrom langflow.io import DropdownInput, MessageTextInput, Output\nfrom langflow.memory import store_message\nfrom langflow.schema.message import Message\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n icon = \"ChatOutput\"\n name = \"ChatOutput\"\n\n inputs = [\n MessageTextInput(\n name=\"input_value\",\n display_name=\"Text\",\n info=\"Message to be passed as output.\",\n ),\n BoolInput(\n name=\"store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[\"Machine\", \"User\"],\n value=\"Machine\",\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\", display_name=\"Sender Name\", info=\"Name of the sender.\", value=\"AI\", advanced=True\n ),\n MessageTextInput(\n name=\"session_id\", display_name=\"Session ID\", info=\"Session ID for the message.\", advanced=True\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n ]\n outputs = [\n Output(display_name=\"Message\", name=\"message\", method=\"message_response\"),\n ]\n\n def message_response(self) -> Message:\n message = Message(\n text=self.input_value,\n sender=self.sender,\n sender_name=self.sender_name,\n session_id=self.session_id,\n )\n if self.session_id and isinstance(message, Message) and isinstance(message.text, str):\n store_message(\n message,\n flow_id=self.graph.flow_id,\n )\n self.message.value = message\n\n self.status = message\n return message\n", "fileTypes": [], "file_path": "", "password": false, "name": "code", "advanced": true, "dynamic": true, "info": "", "load_from_db": false, "title_case": false }, "data_template": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "{text}", "name": "data_template", "display_name": "Data Template", "advanced": true, "input_types": [ "Message" ], "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", "title_case": false, "type": "str" }, "input_value": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "", "name": "input_value", "display_name": "Text", "advanced": false, "input_types": [ "Message" ], "dynamic": false, "info": "Message to be passed as output.", "title_case": false, "type": "str" }, "sender": { "trace_as_metadata": true, "options": [ "Machine", "User" ], "required": false, "placeholder": "", "show": true, "value": "Machine", "name": "sender", "display_name": "Sender Type", "advanced": true, "dynamic": false, "info": "Type of sender.", "title_case": false, "type": "str" }, "sender_name": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "", "name": "sender_name", "display_name": "Sender Name", "advanced": true, "input_types": [ "Message" ], "dynamic": false, "info": "Name of the sender.", "title_case": false, "type": "str" }, "session_id": { "trace_as_input": true, "trace_as_metadata": true, "load_from_db": false, "list": false, "required": false, "placeholder": "", "show": true, "value": "", "name": "session_id", "display_name": "Session ID", "advanced": true, "input_types": [ "Message" ], "dynamic": false, "info": "Session ID for the message.", "title_case": false, "type": "str" }, "store_message": { "trace_as_metadata": true, "list": false, "required": false, "placeholder": "", "show": true, "value": true, "name": "store_message", "display_name": "Store Messages", "advanced": true, "dynamic": false, "info": "Store the message in the history.", "title_case": false, "type": "bool" } }, "description": "Display a chat message in the Playground.", "icon": "ChatOutput", "base_classes": [ "Message" ], "display_name": "Chat Output", "documentation": "", "custom_fields": {}, "output_types": [], "pinned": false, "conditional_paths": [], "frozen": false, "outputs": [ { "types": [ "Message" ], "selected": "Message", "name": "message", "display_name": "Message", "method": "message_response", "value": "__UNDEFINED__", "cache": true } ], "field_order": [ "input_value", "store_message", "sender", "sender_name", "session_id", "data_template" ], "beta": false, "edited": false }, "id": "ChatOutput-dJRst", "description": "Display a chat message in the Playground.", "display_name": "Chat Output" }, "selected": false, "width": 384, "height": 403, "positionAbsolute": { "x": 820, "y": 224.296875 }, "dragging": false } ], "edges": [ { "source": "ChatInput-irFJf", "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-irFJfœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", "target": "ChatOutput-dJRst", "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-dJRstœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "data": { "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-dJRst", "inputTypes": [ "Message" ], "type": "str" }, "sourceHandle": { "dataType": "ChatInput", "id": "ChatInput-irFJf", "name": "message", "output_types": [ "Message" ] } }, "id": "reactflow__edge-ChatInput-irFJf{œdataTypeœ:œChatInputœ,œidœ:œChatInput-irFJfœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-dJRst{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-dJRstœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "className": "" }, { "source": "TextInput-tcoZg", "sourceHandle": "{œdataTypeœ:œTextInputœ,œidœ:œTextInput-tcoZgœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}", "target": "ChatOutput-dJRst", "targetHandle": "{œfieldNameœ:œsender_nameœ,œidœ:œChatOutput-dJRstœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "data": { "targetHandle": { "fieldName": "sender_name", "id": "ChatOutput-dJRst", "inputTypes": [ "Message" ], "type": "str" }, "sourceHandle": { "dataType": "TextInput", "id": "TextInput-tcoZg", "name": "text", "output_types": [ "Message" ] } }, "id": "reactflow__edge-TextInput-tcoZg{œdataTypeœ:œTextInputœ,œidœ:œTextInput-tcoZgœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-dJRst{œfieldNameœ:œsender_nameœ,œidœ:œChatOutput-dJRstœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "className": "" } ], "viewport": { "x": -117, "y": -69, "zoom": 1 } }, "description": "Nurture NLP Nodes Here.", "name": "Simple API Test", "last_tested_version": "1.0.9", "endpoint_name": null, "is_component": false }