agent-flow / src /backend /tests /data /ChatInputTest.json
Tai Truong
fix readme
d202ada
{
"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 langflow.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 langflow.custom import CustomComponent\nfrom anyio.from_thread import start_blocking_portal\nfrom loguru 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": true,
"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"
}