{
    "name": "ChatInputTest",
    "description": "",
    "data": {
        "nodes": [
            {
                "width": 384,
                "height": 359,
                "id": "PromptTemplate-IKKOx",
                "type": "genericNode",
                "position": {
                    "x": 880,
                    "y": 646.9375
                },
                "data": {
                    "type": "PromptTemplate",
                    "node": {
                        "template": {
                            "output_parser": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "output_parser",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "BaseOutputParser",
                                "list": false
                            },
                            "input_variables": {
                                "required": true,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "input_variables",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": true,
                                "value": [
                                    "input"
                                ]
                            },
                            "partial_variables": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "partial_variables",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "code",
                                "list": false
                            },
                            "template": {
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": true,
                                "password": false,
                                "name": "template",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "prompt",
                                "list": false,
                                "value": "Input: {input}\nAI:"
                            },
                            "template_format": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": "f-string",
                                "password": false,
                                "name": "template_format",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "validate_template": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": true,
                                "password": false,
                                "name": "validate_template",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "_type": "PromptTemplate",
                            "input": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": true,
                                "value": "",
                                "password": false,
                                "name": "input",
                                "display_name": "input",
                                "advanced": false,
                                "input_types": [
                                    "Document",
                                    "BaseOutputParser",
                                    "str"
                                ],
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            }
                        },
                        "description": "A prompt template for a language model.",
                        "base_classes": [
                            "BasePromptTemplate",
                            "PromptTemplate",
                            "StringPromptTemplate"
                        ],
                        "name": "",
                        "display_name": "PromptTemplate",
                        "documentation": "https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/",
                        "custom_fields": {
                            "": [
                                "input"
                            ],
                            "template": [
                                "input"
                            ]
                        },
                        "output_types": [],
                        "field_formatters": {
                            "formatters": {
                                "openai_api_key": {}
                            },
                            "base_formatters": {
                                "kwargs": {},
                                "optional": {},
                                "list": {},
                                "dict": {},
                                "union": {},
                                "multiline": {},
                                "show": {},
                                "password": {},
                                "default": {},
                                "headers": {},
                                "dict_code_file": {},
                                "model_fields": {
                                    "MODEL_DICT": {
                                        "OpenAI": [
                                            "text-davinci-003",
                                            "text-davinci-002",
                                            "text-curie-001",
                                            "text-babbage-001",
                                            "text-ada-001"
                                        ],
                                        "ChatOpenAI": [
                                            "gpt-3.5-turbo-0613",
                                            "gpt-3.5-turbo",
                                            "gpt-3.5-turbo-16k-0613",
                                            "gpt-3.5-turbo-16k",
                                            "gpt-4-0613",
                                            "gpt-4-32k-0613",
                                            "gpt-4",
                                            "gpt-4-32k"
                                        ],
                                        "Anthropic": [
                                            "claude-v1",
                                            "claude-v1-100k",
                                            "claude-instant-v1",
                                            "claude-instant-v1-100k",
                                            "claude-v1.3",
                                            "claude-v1.3-100k",
                                            "claude-v1.2",
                                            "claude-v1.0",
                                            "claude-instant-v1.1",
                                            "claude-instant-v1.1-100k",
                                            "claude-instant-v1.0"
                                        ],
                                        "ChatAnthropic": [
                                            "claude-v1",
                                            "claude-v1-100k",
                                            "claude-instant-v1",
                                            "claude-instant-v1-100k",
                                            "claude-v1.3",
                                            "claude-v1.3-100k",
                                            "claude-v1.2",
                                            "claude-v1.0",
                                            "claude-instant-v1.1",
                                            "claude-instant-v1.1-100k",
                                            "claude-instant-v1.0"
                                        ]
                                    }
                                }
                            }
                        },
                        "beta": false,
                        "error": null
                    },
                    "id": "PromptTemplate-IKKOx"
                },
                "selected": false,
                "positionAbsolute": {
                    "x": 880,
                    "y": 646.9375
                },
                "dragging": false
            },
            {
                "width": 384,
                "height": 307,
                "id": "LLMChain-e2dhN",
                "type": "genericNode",
                "position": {
                    "x": 1449.330344958542,
                    "y": 880.1760221487797
                },
                "data": {
                    "type": "LLMChain",
                    "node": {
                        "template": {
                            "callbacks": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "callbacks",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "langchain.callbacks.base.BaseCallbackHandler",
                                "list": true
                            },
                            "llm": {
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "llm",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "BaseLanguageModel",
                                "list": false
                            },
                            "memory": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "memory",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "BaseMemory",
                                "list": false
                            },
                            "output_parser": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "output_parser",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "BaseLLMOutputParser",
                                "list": false
                            },
                            "prompt": {
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "prompt",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "BasePromptTemplate",
                                "list": false
                            },
                            "llm_kwargs": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "llm_kwargs",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "code",
                                "list": false
                            },
                            "metadata": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "metadata",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "code",
                                "list": false
                            },
                            "output_key": {
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": "text",
                                "password": false,
                                "name": "output_key",
                                "advanced": true,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "return_final_only": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": true,
                                "password": false,
                                "name": "return_final_only",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "tags": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "tags",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": true
                            },
                            "verbose": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": false,
                                "password": false,
                                "name": "verbose",
                                "advanced": true,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "_type": "LLMChain"
                        },
                        "description": "Chain to run queries against LLMs.",
                        "base_classes": [
                            "Chain",
                            "LLMChain",
                            "function",
                            "Text"
                        ],
                        "display_name": "LLMChain",
                        "custom_fields": {},
                        "output_types": [],
                        "documentation": "https://python.langchain.com/docs/modules/chains/foundational/llm_chain",
                        "beta": false,
                        "error": null
                    },
                    "id": "LLMChain-e2dhN"
                },
                "positionAbsolute": {
                    "x": 1449.330344958542,
                    "y": 880.1760221487797
                }
            },
            {
                "width": 384,
                "height": 621,
                "id": "ChatOpenAI-2I57f",
                "type": "genericNode",
                "position": {
                    "x": 393.3551923753797,
                    "y": 1061.025177453298
                },
                "data": {
                    "type": "ChatOpenAI",
                    "node": {
                        "template": {
                            "callbacks": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "callbacks",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "langchain.callbacks.base.BaseCallbackHandler",
                                "list": true
                            },
                            "cache": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "cache",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "client": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "client",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "Any",
                                "list": false
                            },
                            "max_retries": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": 6,
                                "password": false,
                                "name": "max_retries",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "int",
                                "list": false
                            },
                            "max_tokens": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": true,
                                "name": "max_tokens",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "int",
                                "list": false,
                                "value": ""
                            },
                            "metadata": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "metadata",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "code",
                                "list": false
                            },
                            "model_kwargs": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "model_kwargs",
                                "advanced": true,
                                "dynamic": false,
                                "info": "",
                                "type": "code",
                                "list": false
                            },
                            "model_name": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": "gpt-3.5-turbo-0613",
                                "password": false,
                                "options": [
                                    "gpt-3.5-turbo-0613",
                                    "gpt-3.5-turbo",
                                    "gpt-3.5-turbo-16k-0613",
                                    "gpt-3.5-turbo-16k",
                                    "gpt-4-0613",
                                    "gpt-4-32k-0613",
                                    "gpt-4",
                                    "gpt-4-32k"
                                ],
                                "name": "model_name",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": true
                            },
                            "n": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": 1,
                                "password": false,
                                "name": "n",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "int",
                                "list": false
                            },
                            "openai_api_base": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "openai_api_base",
                                "display_name": "OpenAI API Base",
                                "advanced": false,
                                "dynamic": false,
                                "info": "\nThe base URL of the OpenAI API. Defaults to https://api.openai.com/v1.\n\nYou can change this to use other APIs like JinaChat, LocalAI and Prem.\n",
                                "type": "str",
                                "list": false
                            },
                            "openai_api_key": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": "",
                                "password": true,
                                "name": "openai_api_key",
                                "display_name": "OpenAI API Key",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "openai_organization": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "openai_organization",
                                "display_name": "OpenAI Organization",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "openai_proxy": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "openai_proxy",
                                "display_name": "OpenAI Proxy",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "request_timeout": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "request_timeout",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "float",
                                "list": false
                            },
                            "streaming": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": false,
                                "password": false,
                                "name": "streaming",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "tags": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "tags",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": true
                            },
                            "temperature": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": 0.7,
                                "password": false,
                                "name": "temperature",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "float",
                                "list": false
                            },
                            "tiktoken_model_name": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "password": false,
                                "name": "tiktoken_model_name",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            },
                            "verbose": {
                                "required": false,
                                "placeholder": "",
                                "show": false,
                                "multiline": false,
                                "value": false,
                                "password": false,
                                "name": "verbose",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "_type": "ChatOpenAI"
                        },
                        "description": "`OpenAI` Chat large language models API.",
                        "base_classes": [
                            "BaseChatModel",
                            "ChatOpenAI",
                            "BaseLanguageModel",
                            "BaseLLM"
                        ],
                        "display_name": "ChatOpenAI",
                        "custom_fields": {},
                        "output_types": [],
                        "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai",
                        "beta": false,
                        "error": null
                    },
                    "id": "ChatOpenAI-2I57f"
                },
                "selected": false,
                "positionAbsolute": {
                    "x": 393.3551923753797,
                    "y": 1061.025177453298
                },
                "dragging": false
            },
            {
                "width": 384,
                "height": 359,
                "id": "ChatInput-207IY",
                "type": "genericNode",
                "position": {
                    "x": 415.1018926651509,
                    "y": 506.62736462360317
                },
                "data": {
                    "type": "ChatInput",
                    "node": {
                        "template": {
                            "code": {
                                "dynamic": true,
                                "required": true,
                                "placeholder": "",
                                "show": false,
                                "multiline": true,
                                "value": "from typing import Optional\nfrom lfx.custom import CustomComponent\n\n\nclass ChatInput(CustomComponent):\n    display_name = \"Chat Input\"\n\n    def build(self, message: Optional[str] = \"\") -> str:\n        return message\n",
                                "password": false,
                                "name": "code",
                                "advanced": false,
                                "type": "code",
                                "list": false
                            },
                            "_type": "CustomComponent",
                            "message": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": "",
                                "password": false,
                                "name": "message",
                                "display_name": "message",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "str",
                                "list": false
                            }
                        },
                        "description": "Used to get user input from the chat.",
                        "base_classes": [
                            "str"
                        ],
                        "display_name": "Chat Input",
                        "custom_fields": {
                            "message": null
                        },
                        "output_types": [
                            "ChatInput"
                        ],
                        "documentation": "",
                        "beta": true,
                        "error": null
                    },
                    "id": "ChatInput-207IY"
                },
                "positionAbsolute": {
                    "x": 415.1018926651509,
                    "y": 506.62736462360317
                }
            },
            {
                "width": 384,
                "height": 389,
                "id": "ChatOutput-1jlJy",
                "type": "genericNode",
                "position": {
                    "x": 2002.8008888732943,
                    "y": 926.1397178702218
                },
                "data": {
                    "type": "ChatOutput",
                    "node": {
                        "template": {
                            "code": {
                                "dynamic": true,
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": true,
                                "value": "from typing import Optional, Text\nfrom langflow.api.v1.schemas import ChatMessage\nfrom langflow.services.utils import get_chat_manager\nfrom lfx.custom import CustomComponent\nfrom anyio.from_thread import start_blocking_portal\nfrom lfx.log.logger import logger\n\n\nclass ChatOutput(CustomComponent):\n    display_name = \"Chat Output\"\n    description = \"Used to send a message to the chat.\"\n\n    field_config = {\n        \"code\": {\n            \"show\": False,\n        }\n    }\n\n    def build_config(self):\n        return {\"message\": {\"input_types\": [\"Text\"]}}\n\n    def build(self, message: Optional[Text], is_ai: bool = False) -> Text:\n        if not message:\n            return \"\"\n        try:\n            chat_manager = get_chat_manager()\n            chat_message = ChatMessage(message=message, is_bot=is_ai)\n            # send_message is a coroutine\n            # run in a thread safe manner\n            with start_blocking_portal() as portal:\n                portal.call(chat_manager.send_message, chat_message)\n            chat_manager.chat_history.add_message(\n                chat_manager.cache_manager.current_client_id, chat_message\n            )\n        except Exception as exc:\n            logger.exception(exc)\n            logger.debug(f\"Error sending message to chat: {exc}\")\n        self.repr_value = message\n        return message\n",
                                "password": false,
                                "name": "code",
                                "advanced": false,
                                "type": "code",
                                "list": false
                            },
                            "_type": "CustomComponent",
                            "is_ai": {
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "value": true,
                                "password": false,
                                "name": "is_ai",
                                "display_name": "is_ai",
                                "advanced": false,
                                "dynamic": false,
                                "info": "",
                                "type": "bool",
                                "list": false
                            },
                            "message": {
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "multiline": false,
                                "password": false,
                                "name": "message",
                                "display_name": "message",
                                "advanced": false,
                                "input_types": [
                                    "Text"
                                ],
                                "dynamic": false,
                                "info": "",
                                "type": "Text",
                                "list": false
                            }
                        },
                        "description": "Used to send a message to the chat.",
                        "base_classes": [
                            "str"
                        ],
                        "display_name": "Chat Output",
                        "custom_fields": {
                            "is_ai": null,
                            "message": null
                        },
                        "output_types": [
                            "ChatOutput"
                        ],
                        "documentation": "",
                        "beta": true,
                        "error": null
                    },
                    "id": "ChatOutput-1jlJy"
                },
                "selected": true,
                "dragging": false,
                "positionAbsolute": {
                    "x": 2002.8008888732943,
                    "y": 926.1397178702218
                }
            }
        ],
        "edges": [
            {
                "source": "PromptTemplate-IKKOx",
                "sourceHandle": "PromptTemplate|PromptTemplate-IKKOx|BasePromptTemplate|PromptTemplate|StringPromptTemplate",
                "target": "LLMChain-e2dhN",
                "targetHandle": "BasePromptTemplate|prompt|LLMChain-e2dhN",
                "style": {
                    "stroke": "#555"
                },
                "className": "",
                "animated": false,
                "id": "reactflow__edge-PromptTemplate-IKKOxPromptTemplate|PromptTemplate-IKKOx|StringPromptTemplate|BasePromptTemplate|PromptTemplate-LLMChain-e2dhNBasePromptTemplate|prompt|LLMChain-e2dhN"
            },
            {
                "source": "ChatOpenAI-2I57f",
                "sourceHandle": "ChatOpenAI|ChatOpenAI-2I57f|BaseChatModel|ChatOpenAI|BaseLanguageModel|BaseLLM",
                "target": "LLMChain-e2dhN",
                "targetHandle": "BaseLanguageModel|llm|LLMChain-e2dhN",
                "style": {
                    "stroke": "#555"
                },
                "className": "",
                "animated": false,
                "id": "reactflow__edge-ChatOpenAI-2I57fChatOpenAI|ChatOpenAI-2I57f|BaseChatModel|ChatOpenAI|BaseLanguageModel|BaseLLM-LLMChain-e2dhNBaseLanguageModel|llm|LLMChain-e2dhN"
            },
            {
                "source": "ChatInput-207IY",
                "sourceHandle": "ChatInput|ChatInput-207IY|str",
                "target": "PromptTemplate-IKKOx",
                "targetHandle": "Document;BaseOutputParser;str|input|PromptTemplate-IKKOx",
                "style": {
                    "stroke": "#555"
                },
                "className": "",
                "animated": false,
                "id": "reactflow__edge-ChatInput-207IYChatInput|ChatInput-207IY|str-PromptTemplate-IKKOxDocument;BaseOutputParser;str|input|PromptTemplate-IKKOx"
            },
            {
                "source": "LLMChain-e2dhN",
                "sourceHandle": "LLMChain|LLMChain-e2dhN|Chain|LLMChain|function|Text",
                "target": "ChatOutput-1jlJy",
                "targetHandle": "Text|message|ChatOutput-1jlJy",
                "style": {
                    "stroke": "#555"
                },
                "className": "stroke-foreground  stroke-connection",
                "animated": false,
                "id": "reactflow__edge-LLMChain-e2dhNLLMChain|LLMChain-e2dhN|Chain|LLMChain|function|Text-ChatOutput-1jlJyText|message|ChatOutput-1jlJy"
            }
        ],
        "viewport": {
            "x": -141.98308184453367,
            "y": -104.98637616656356,
            "zoom": 0.4788209787464315
        }
    },
    "id": "b3388ab9-b5dc-4447-b560-79caef40faa5",
    "user_id": "c65bfea3-3eea-4e71-8fc4-106238eb0583"
}