diff --git a/examples/Basic Chat with Prompt and History.json b/examples/Basic Chat with Prompt and History.json index cdbdb26..ef44675 100644 --- a/examples/Basic Chat with Prompt and History.json +++ b/examples/Basic Chat with Prompt and History.json @@ -1,44 +1,45 @@ { - "description": "A simple chat with a custom prompt template and conversational memory buffer", - "name": "Basic Chat with Prompt and History", - "id": "9b66bce2-ef4d-40bb-a5df-6e72b0ad93fc", + "id": "956f0b67-9c18-4275-8bf5-dd4024590b82", "data": { "nodes": [ { "width": 384, - "height": 693, - "id": "dndnode_24", + "height": 629, + "id": "ChatOpenAI-qdmsI", "type": "genericNode", "position": { - "x": 170.87326389541306, - "y": 465.8628482073749 + "x": 241.3279963280445, + "y": -486.8439112212181 }, "data": { "type": "ChatOpenAI", "node": { "template": { - "verbose": { + "callbacks": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, "password": false, - "name": "verbose", + "name": "callbacks", "advanced": false, - "type": "bool", - "list": false + "dynamic": false, + "info": "", + "type": "langchain.callbacks.base.BaseCallbackHandler", + "list": true }, - "callbacks": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "callbacks", + "name": "cache", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true + "dynamic": false, + "info": "", + "type": "bool", + "list": false }, "client": { "required": false, @@ -48,9 +49,65 @@ "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": "dict", + "list": false + }, + "model_kwargs": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, "model_name": { "required": false, "placeholder": "", @@ -59,36 +116,48 @@ "value": "gpt-3.5-turbo", "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 }, - "temperature": { + "n": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 1, "password": false, - "name": "temperature", + "name": "n", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -101,22 +170,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -126,6 +184,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -138,6 +198,8 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -149,209 +211,274 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", "list": false, "value": 60 }, - "max_retries": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, + "value": false, "password": false, - "name": "max_retries", + "name": "streaming", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "streaming": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, "password": false, - "name": "streaming", + "name": "tags", "advanced": false, - "type": "bool", + "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 }, - "n": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "n", + "name": "tiktoken_model_name", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "max_tokens": { + "verbose": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "password": true, - "name": "max_tokens", + "value": false, + "password": false, + "name": "verbose", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, "_type": "ChatOpenAI" }, - "description": "Wrapper around OpenAI Chat large language models.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ - "BaseChatModel", "ChatOpenAI", - "BaseLanguageModel" - ] + "BaseChatModel", + "BaseLanguageModel", + "BaseLLM" + ], + "display_name": "ChatOpenAI", + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai" }, - "id": "dndnode_24", + "id": "ChatOpenAI-qdmsI", "value": null }, "selected": true, "dragging": false, "positionAbsolute": { - "x": 170.87326389541306, - "y": 465.8628482073749 + "x": 241.3279963280445, + "y": -486.8439112212181 } }, { "width": 384, - "height": 307, - "id": "dndnode_30", + "height": 577, + "id": "ConversationBufferMemory-frtJG", "type": "genericNode", "position": { - "x": 1250.1806448178158, - "y": 588.4657451068704 + "x": 240.68758111624516, + "y": 172.4355109349313 }, "data": { - "type": "LLMChain", + "type": "ConversationBufferMemory", "node": { "template": { - "memory": { + "chat_memory": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "memory", + "name": "chat_memory", "advanced": false, - "type": "BaseMemory", + "dynamic": false, + "info": "", + "type": "BaseChatMessageHistory", "list": false }, - "callbacks": { + "ai_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": "AI", "password": false, - "name": "callbacks", + "name": "ai_prefix", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true + "dynamic": false, + "info": "", + "type": "str", + "list": false }, - "verbose": { + "human_prefix": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": false, + "value": "Human", "password": false, - "name": "verbose", - "advanced": true, - "type": "bool", + "name": "human_prefix", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "prompt": { - "required": true, + "input_key": { + "required": false, "placeholder": "", "show": true, "multiline": false, + "value": "", "password": false, - "name": "prompt", + "name": "input_key", "advanced": false, - "type": "BasePromptTemplate", + "dynamic": false, + "info": "The variable to be used as Chat Input when more than one variable is available.", + "type": "str", "list": false }, - "llm": { - "required": true, + "memory_key": { + "required": false, "placeholder": "", "show": true, "multiline": false, + "value": "history", "password": false, - "name": "llm", + "name": "memory_key", "advanced": false, - "type": "BaseLanguageModel", + "dynamic": false, + "info": "", + "type": "str", "list": false }, "output_key": { - "required": true, + "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "text", + "value": "", "password": false, "name": "output_key", - "advanced": true, + "advanced": false, + "dynamic": false, + "info": "The variable to be used as Chat Output (e.g. answer in a ConversationalRetrievalChain)", "type": "str", "list": false }, - "_type": "LLMChain" + "return_messages": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "return_messages", + "advanced": false, + "dynamic": false, + "info": "", + "type": "bool", + "list": false + }, + "_type": "ConversationBufferMemory" }, - "description": "Chain to run queries against LLMs.", + "description": "Buffer for storing conversation memory.", "base_classes": [ - "LLMChain", - "Chain" - ] + "ConversationBufferMemory", + "BaseChatMemory", + "BaseMemory" + ], + "display_name": "ConversationBufferMemory", + "documentation": "https://python.langchain.com/docs/modules/memory/how_to/buffer" }, - "id": "dndnode_30", + "id": "ConversationBufferMemory-frtJG", "value": null }, "selected": false, "positionAbsolute": { - "x": 1250.1806448178158, - "y": 588.4657451068704 + "x": 240.68758111624516, + "y": 172.4355109349313 }, "dragging": false }, { "width": 384, - "height": 265, - "id": "dndnode_31", + "height": 469, + "id": "PromptTemplate-mrNIG", "type": "genericNode", "position": { - "x": 172.18064481781585, - "y": 67.26574510687044 + "x": 249.637230371315, + "y": 756.3732210160607 }, "data": { "type": "PromptTemplate", "node": { "template": { - "input_variables": { - "required": true, + "output_parser": { + "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "input_variables", + "name": "output_parser", "advanced": false, - "type": "str", - "list": true + "dynamic": false, + "info": "", + "type": "BaseOutputParser", + "list": false }, - "output_parser": { - "required": false, + "input_variables": { + "required": true, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "output_parser", + "name": "input_variables", "advanced": false, - "type": "BaseOutputParser", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true, + "value": [ + "history", + "text" + ] }, "partial_variables": { "required": false, @@ -361,7 +488,9 @@ "password": false, "name": "partial_variables", "advanced": false, - "type": "code", + "dynamic": false, + "info": "", + "type": "dict", "list": false }, "template": { @@ -372,6 +501,8 @@ "password": false, "name": "template", "advanced": false, + "dynamic": false, + "info": "", "type": "prompt", "list": false, "value": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n\n{history}\nHuman: {text}\nAI:" @@ -385,6 +516,8 @@ "password": false, "name": "template_format", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -397,172 +530,276 @@ "password": false, "name": "validate_template", "advanced": false, + "dynamic": false, + "info": "", "type": "bool", "list": false }, - "_type": "PromptTemplate" + "_type": "PromptTemplate", + "history": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "history", + "display_name": "history", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "text": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "text", + "display_name": "text", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + } }, - "description": "Schema to represent a prompt for an LLM.", + "description": "A prompt template for a language model.", "base_classes": [ "StringPromptTemplate", "PromptTemplate", "BasePromptTemplate" - ] + ], + "name": "", + "display_name": "PromptTemplate", + "documentation": "https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/", + "custom_fields": { + "": [ + "history", + "text" + ], + "template": [ + "history", + "text" + ] + }, + "output_types": [], + "field_formatters": {}, + "beta": false, + "error": null }, - "id": "dndnode_31", - "value": null + "id": "PromptTemplate-mrNIG" }, "selected": false, - "dragging": false, "positionAbsolute": { - "x": 172.18064481781585, - "y": 67.26574510687044 - } + "x": 249.637230371315, + "y": 756.3732210160607 + }, + "dragging": false }, { "width": 384, - "height": 273, - "id": "dndnode_32", + "height": 339, + "id": "LLMChain-Pvm9x", "type": "genericNode", "position": { - "x": 802.1806448178158, - "y": 43.265745106870426 + "x": 1299.7208072540463, + "y": 634.671457752373 }, "data": { - "type": "ConversationBufferMemory", + "type": "LLMChain", "node": { "template": { - "chat_memory": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "chat_memory", - "advanced": false, - "type": "BaseChatMessageHistory", - "list": false - }, - "output_key": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "output_key", - "advanced": false, - "type": "str", - "list": false - }, - "input_key": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "input_key", - "advanced": false, - "type": "str", - "list": false - }, - "return_messages": { - "required": false, + "code": { + "dynamic": true, + "required": true, "placeholder": "", "show": false, - "multiline": false, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import LLMChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import PromptTemplate, BaseLanguageModel, BaseMemory, Chain\n\n\nclass LLMChainComponent(CustomComponent):\n display_name = \"LLMChain\"\n description = \"Chain to run queries against LLMs\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\"display_name\": \"Memory\"},\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n prompt: PromptTemplate,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n return LLMChain(prompt=prompt, llm=llm, memory=memory)\n", "password": false, - "name": "return_messages", + "name": "code", "advanced": false, - "type": "bool", + "type": "code", "list": false }, - "human_prefix": { - "required": false, + "_type": "CustomComponent", + "llm": { + "required": true, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "Human", "password": false, - "name": "human_prefix", + "name": "llm", + "display_name": "LLM", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", "list": false }, - "ai_prefix": { + "memory": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "AI", "password": false, - "name": "ai_prefix", + "name": "memory", + "display_name": "Memory", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "BaseMemory", "list": false }, - "memory_key": { - "required": false, + "prompt": { + "required": true, "placeholder": "", "show": true, "multiline": false, - "value": "history", "password": false, - "name": "memory_key", + "name": "prompt", + "display_name": "Prompt", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "PromptTemplate", "list": false - }, - "_type": "ConversationBufferMemory" + } }, - "description": "Buffer for storing conversation memory.", + "description": "Chain to run queries against LLMs", "base_classes": [ - "BaseMemory", - "ConversationBufferMemory", - "BaseChatMemory" - ] + "Chain", + "Callable" + ], + "display_name": "LLMChain", + "custom_fields": { + "llm": null, + "memory": null, + "prompt": null + }, + "output_types": [ + "LLMChain" + ], + "documentation": "", + "beta": true, + "error": null }, - "id": "dndnode_32", - "value": null + "id": "LLMChain-Pvm9x" }, - "selected": false, "positionAbsolute": { - "x": 802.1806448178158, - "y": 43.265745106870426 - }, - "dragging": false + "x": 1299.7208072540463, + "y": 634.671457752373 + } } ], "edges": [ { - "source": "dndnode_24", - "sourceHandle": "ChatOpenAI|dndnode_24|BaseChatModel|ChatOpenAI|BaseLanguageModel", - "target": "dndnode_30", - "targetHandle": "BaseLanguageModel|llm|dndnode_30", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_24ChatOpenAI|dndnode_24|BaseChatModel|ChatOpenAI|BaseLanguageModel-dndnode_30BaseLanguageModel|llm|dndnode_30", - "selected": false + "source": "ConversationBufferMemory-frtJG", + "sourceHandle": "{œbaseClassesœ:[œConversationBufferMemoryœ,œBaseChatMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-frtJGœ}", + "target": "LLMChain-Pvm9x", + "targetHandle": "{œfieldNameœ:œmemoryœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}", + "data": { + "targetHandle": { + "fieldName": "memory", + "id": "LLMChain-Pvm9x", + "inputTypes": null, + "type": "BaseMemory" + }, + "sourceHandle": { + "baseClasses": [ + "ConversationBufferMemory", + "BaseChatMemory", + "BaseMemory" + ], + "dataType": "ConversationBufferMemory", + "id": "ConversationBufferMemory-frtJG" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ConversationBufferMemory-frtJG{œbaseClassesœ:[œConversationBufferMemoryœ,œBaseChatMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-frtJGœ}-LLMChain-Pvm9x{œfieldNameœ:œmemoryœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}" }, { - "source": "dndnode_31", - "sourceHandle": "PromptTemplate|dndnode_31|StringPromptTemplate|PromptTemplate|BasePromptTemplate", - "target": "dndnode_30", - "targetHandle": "BasePromptTemplate|prompt|dndnode_30", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_31PromptTemplate|dndnode_31|StringPromptTemplate|PromptTemplate|BasePromptTemplate-dndnode_30BasePromptTemplate|prompt|dndnode_30" + "source": "PromptTemplate-mrNIG", + "sourceHandle": "{œbaseClassesœ:[œStringPromptTemplateœ,œPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-mrNIGœ}", + "target": "LLMChain-Pvm9x", + "targetHandle": "{œfieldNameœ:œpromptœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}", + "data": { + "targetHandle": { + "fieldName": "prompt", + "id": "LLMChain-Pvm9x", + "inputTypes": null, + "type": "PromptTemplate" + }, + "sourceHandle": { + "baseClasses": [ + "StringPromptTemplate", + "PromptTemplate", + "BasePromptTemplate" + ], + "dataType": "PromptTemplate", + "id": "PromptTemplate-mrNIG" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-PromptTemplate-mrNIG{œbaseClassesœ:[œStringPromptTemplateœ,œPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-mrNIGœ}-LLMChain-Pvm9x{œfieldNameœ:œpromptœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}" }, { - "source": "dndnode_32", - "sourceHandle": "ConversationBufferMemory|dndnode_32|BaseMemory|ConversationBufferMemory|BaseChatMemory", - "target": "dndnode_30", - "targetHandle": "BaseMemory|memory|dndnode_30", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_32ConversationBufferMemory|dndnode_32|BaseMemory|ConversationBufferMemory|BaseChatMemory-dndnode_30BaseMemory|memory|dndnode_30" + "source": "ChatOpenAI-qdmsI", + "sourceHandle": "{œbaseClassesœ:[œChatOpenAIœ,œBaseChatModelœ,œBaseLanguageModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-qdmsIœ}", + "target": "LLMChain-Pvm9x", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "LLMChain-Pvm9x", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "ChatOpenAI", + "BaseChatModel", + "BaseLanguageModel", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-qdmsI" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-qdmsI{œbaseClassesœ:[œChatOpenAIœ,œBaseChatModelœ,œBaseLanguageModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-qdmsIœ}-LLMChain-Pvm9x{œfieldNameœ:œllmœ,œidœ:œLLMChain-Pvm9xœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" } ], "viewport": { - "x": 188.39556390089513, - "y": 130.05583310649712, - "zoom": 0.6070974421975234 + "x": -8.68396403367342, + "y": 256.83423473981316, + "zoom": 0.4060094549734929 } - } + }, + "description": "A simple chat with a custom prompt template and conversational memory buffer", + "name": "Basic Chat with Prompt and History" } \ No newline at end of file diff --git a/examples/Basic Chat.json b/examples/Basic Chat.json index eb531b0..939c84d 100644 --- a/examples/Basic Chat.json +++ b/examples/Basic Chat.json @@ -1,34 +1,115 @@ { - "description": "Simplest possible chat model", - "name": "Basic Chat", - "id": "64b0e4e3-2f4d-41b2-9c71-a214bd0e77bf", + "id": "29bc3550-c185-4aff-8aae-ab882e61ca07", "data": { "nodes": [ { "width": 384, - "height": 597, - "id": "dndnode_24", + "height": 339, + "id": "LLMChain-kW7hF", "type": "genericNode", "position": { - "x": 228.87326389541306, - "y": 465.8628482073749 + "x": 797.7180254744525, + "y": 762.6557196752607 }, "data": { - "type": "ChatOpenAI", + "type": "LLMChain", "node": { "template": { - "verbose": { - "required": false, + "code": { + "dynamic": true, + "required": true, "placeholder": "", "show": false, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import LLMChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import PromptTemplate, BaseLanguageModel, BaseMemory, Chain\n\n\nclass LLMChainComponent(CustomComponent):\n display_name = \"LLMChain\"\n description = \"Chain to run queries against LLMs\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\"display_name\": \"Memory\"},\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n prompt: PromptTemplate,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n return LLMChain(prompt=prompt, llm=llm, memory=memory)\n", + "password": false, + "name": "code", + "advanced": false, + "type": "code", + "list": false + }, + "_type": "CustomComponent", + "llm": { + "required": true, + "placeholder": "", + "show": true, "multiline": false, - "value": false, "password": false, - "name": "verbose", + "name": "llm", + "display_name": "LLM", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", + "list": false + }, + "memory": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "memory", + "display_name": "Memory", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseMemory", "list": false }, + "prompt": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "prompt", + "display_name": "Prompt", + "advanced": false, + "dynamic": false, + "info": "", + "type": "PromptTemplate", + "list": false + } + }, + "description": "Chain to run queries against LLMs", + "base_classes": [ + "Chain", + "Callable" + ], + "display_name": "LLMChain", + "custom_fields": { + "llm": null, + "memory": null, + "prompt": null + }, + "output_types": [ + "LLMChain" + ], + "documentation": "", + "beta": true, + "error": null + }, + "id": "LLMChain-kW7hF" + }, + "positionAbsolute": { + "x": 797.7180254744525, + "y": 762.6557196752607 + } + }, + { + "width": 384, + "height": 629, + "id": "ChatOpenAI-wUDh7", + "type": "genericNode", + "position": { + "x": 167.87552042312655, + "y": 466.1817371720216 + }, + "data": { + "type": "ChatOpenAI", + "node": { + "template": { "callbacks": { "required": false, "placeholder": "", @@ -37,9 +118,24 @@ "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": "", @@ -48,47 +144,114 @@ "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 + }, + "metadata": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "metadata", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "model_kwargs": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, "model_name": { "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "gpt-3.5-turbo", + "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 }, - "temperature": { + "n": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 1, "password": false, - "name": "temperature", + "name": "n", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -101,22 +264,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -126,6 +278,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -138,6 +292,8 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -149,20 +305,9 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", - "list": false, - "value": 60 - }, - "max_retries": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 6, - "password": false, - "name": "max_retries", - "advanced": false, - "type": "int", "list": false }, "streaming": { @@ -174,189 +319,129 @@ "password": false, "name": "streaming", "advanced": false, + "dynamic": false, + "info": "", "type": "bool", "list": false }, - "n": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "n", - "advanced": false, - "type": "int", - "list": false - }, - "max_tokens": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "max_tokens", + "name": "tags", "advanced": false, - "type": "int", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, - "_type": "ChatOpenAI" - }, - "description": "Wrapper around OpenAI Chat large language models.", - "base_classes": [ - "BaseChatModel", - "ChatOpenAI", - "BaseLanguageModel" - ] - }, - "id": "dndnode_24", - "value": null - }, - "selected": false, - "dragging": false, - "positionAbsolute": { - "x": 228.87326389541306, - "y": 465.8628482073749 - } - }, - { - "width": 384, - "height": 287, - "id": "dndnode_28", - "type": "genericNode", - "position": { - "x": 806, - "y": 554 - }, - "data": { - "type": "ConversationChain", - "node": { - "template": { - "memory": { + "temperature": { "required": false, "placeholder": "", "show": true, "multiline": false, + "value": 0.7, "password": false, - "name": "memory", + "name": "temperature", "advanced": false, - "type": "BaseMemory", + "dynamic": false, + "info": "", + "type": "float", "list": false }, - "callbacks": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "callbacks", + "name": "tiktoken_model_name", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, - "verbose": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "verbose", - "advanced": true, - "type": "bool", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "prompt": { + "verbose": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": { - "input_variables": [ - "history", - "input" - ], - "output_parser": null, - "partial_variables": {}, - "template": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:", - "template_format": "f-string", - "validate_template": true, - "_type": "prompt" - }, - "password": false, - "name": "prompt", - "advanced": false, - "type": "BasePromptTemplate", - "list": false - }, - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, + "value": false, "password": false, - "name": "llm", + "name": "verbose", "advanced": false, - "type": "BaseLanguageModel", - "list": false - }, - "output_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "response", - "password": false, - "name": "output_key", - "advanced": true, - "type": "str", - "list": false - }, - "input_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "input", - "password": false, - "name": "input_key", - "advanced": true, - "type": "str", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "_type": "ConversationChain" + "_type": "ChatOpenAI" }, - "description": "Chain to have a conversation and load context from memory.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ - "LLMChain", - "Chain", - "ConversationChain" - ] + "BaseChatModel", + "BaseLanguageModel", + "ChatOpenAI", + "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": "dndnode_28", - "value": null + "id": "ChatOpenAI-wUDh7" }, "selected": true, - "dragging": false, "positionAbsolute": { - "x": 806, - "y": 554 - } + "x": 167.87552042312655, + "y": 466.1817371720216 + }, + "dragging": false } ], "edges": [ { - "source": "dndnode_24", - "sourceHandle": "ChatOpenAI|dndnode_24|BaseChatModel|ChatOpenAI|BaseLanguageModel", - "target": "dndnode_28", - "targetHandle": "BaseLanguageModel|llm|dndnode_28", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_24ChatOpenAI|dndnode_24|BaseChatModel|ChatOpenAI|BaseLanguageModel-dndnode_28BaseLanguageModel|llm|dndnode_28" + "source": "ChatOpenAI-wUDh7", + "sourceHandle": "{œbaseClassesœ:[œBaseChatModelœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-wUDh7œ}", + "target": "LLMChain-kW7hF", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œLLMChain-kW7hFœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "LLMChain-kW7hF", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseChatModel", + "BaseLanguageModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-wUDh7" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-wUDh7{œbaseClassesœ:[œBaseChatModelœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-wUDh7œ}-LLMChain-kW7hF{œfieldNameœ:œllmœ,œidœ:œLLMChain-kW7hFœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" } ], "viewport": { - "x": 389.9096775910921, - "y": 0.7671274465648139, - "zoom": 0.5 + "x": 33.595929746412764, + "y": -195.32583925222502, + "zoom": 0.7589198826158101 } - } + }, + "description": "Simplest possible chat model", + "name": "Basic Chat" } \ No newline at end of file diff --git a/examples/Buffer Memory.json b/examples/Buffer Memory.json index 965c30d..9d37157 100644 --- a/examples/Buffer Memory.json +++ b/examples/Buffer Memory.json @@ -1,17 +1,15 @@ { - "description": "A Chain that uses a ConversationBufferMemory", - "name": "Buffer Memory", - "id": "5426219a-a85d-4d0c-96d8-f83fa40a8b5c", + "id": "d051baeb-8577-46bf-bdbd-d33ce84700ed", "data": { "nodes": [ { "width": 384, - "height": 273, - "id": "dndnode_48", + "height": 577, + "id": "ConversationBufferMemory-MMHD1", "type": "genericNode", "position": { - "x": 739.8999754662251, - "y": 334.3621287703047 + "x": 813.9739216748036, + "y": 674.0718922095974 }, "data": { "type": "ConversationBufferMemory", @@ -20,171 +18,150 @@ "chat_memory": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, "password": false, "name": "chat_memory", "advanced": false, + "dynamic": false, + "info": "", "type": "BaseChatMessageHistory", "list": false }, - "output_key": { + "ai_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": "AI", "password": false, - "name": "output_key", + "name": "ai_prefix", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "input_key": { + "human_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": "Human", "password": false, - "name": "input_key", + "name": "human_prefix", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "return_messages": { + "input_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, + "value": "", "password": false, - "name": "return_messages", + "name": "input_key", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "The variable to be used as Chat Input when more than one variable is available.", + "type": "str", "list": false }, - "human_prefix": { + "memory_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "Human", + "value": "chat_history", "password": false, - "name": "human_prefix", + "name": "memory_key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "ai_prefix": { + "output_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "AI", + "value": "", "password": false, - "name": "ai_prefix", + "name": "output_key", "advanced": false, + "dynamic": false, + "info": "The variable to be used as Chat Output (e.g. answer in a ConversationalRetrievalChain)", "type": "str", "list": false }, - "memory_key": { + "return_messages": { "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "history", "password": false, - "name": "memory_key", + "name": "return_messages", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, "_type": "ConversationBufferMemory" }, "description": "Buffer for storing conversation memory.", "base_classes": [ - "BaseMemory", + "ConversationBufferMemory", "BaseChatMemory", - "ConversationBufferMemory" - ] + "BaseMemory" + ], + "display_name": "ConversationBufferMemory", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/memory/how_to/buffer", + "beta": false, + "error": null }, - "id": "dndnode_48", - "value": null + "id": "ConversationBufferMemory-MMHD1" }, - "selected": false, "positionAbsolute": { - "x": 739.8999754662251, - "y": 334.3621287703047 + "x": 813.9739216748036, + "y": 674.0718922095974 }, + "selected": false, "dragging": false }, { "width": 384, - "height": 287, - "id": "dndnode_49", + "height": 311, + "id": "ConversationChain-yRXHU", "type": "genericNode", "position": { - "x": 1364.824439016022, - "y": 466.4103762723428 + "x": 1324.2361201682975, + "y": 488.94233102416376 }, "data": { "type": "ConversationChain", "node": { "template": { - "memory": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "memory", - "advanced": false, - "type": "BaseMemory", - "list": false - }, - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, - "verbose": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "verbose", - "advanced": true, - "type": "bool", - "list": false - }, - "prompt": { - "required": false, + "code": { + "dynamic": true, + "required": true, "placeholder": "", "show": false, - "multiline": false, - "value": { - "input_variables": [ - "history", - "input" - ], - "output_parser": null, - "partial_variables": {}, - "template": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:", - "template_format": "f-string", - "validate_template": true, - "_type": "prompt" - }, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import ConversationChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import BaseLanguageModel, BaseMemory, Chain\n\n\nclass ConversationChainComponent(CustomComponent):\n display_name = \"ConversationChain\"\n description = \"Chain to have a conversation and load context from memory.\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\n \"display_name\": \"Memory\",\n \"info\": \"Memory to load context from. If none is provided, a ConversationBufferMemory will be used.\",\n },\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n if memory is None:\n return ConversationChain(llm=llm)\n return ConversationChain(llm=llm, memory=memory)\n", "password": false, - "name": "prompt", + "name": "code", "advanced": false, - "type": "BasePromptTemplate", + "type": "code", "list": false }, + "_type": "CustomComponent", "llm": { "required": true, "placeholder": "", @@ -192,88 +169,92 @@ "multiline": false, "password": false, "name": "llm", + "display_name": "LLM", "advanced": false, + "dynamic": false, + "info": "", "type": "BaseLanguageModel", "list": false }, - "output_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "response", - "password": false, - "name": "output_key", - "advanced": true, - "type": "str", - "list": false - }, - "input_key": { - "required": true, + "memory": { + "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "input", "password": false, - "name": "input_key", - "advanced": true, - "type": "str", + "name": "memory", + "display_name": "Memory", + "advanced": false, + "dynamic": false, + "info": "Memory to load context from. If none is provided, a ConversationBufferMemory will be used.", + "type": "BaseMemory", "list": false - }, - "_type": "ConversationChain" + } }, "description": "Chain to have a conversation and load context from memory.", "base_classes": [ - "LLMChain", "Chain", + "Callable" + ], + "display_name": "ConversationChain", + "custom_fields": { + "llm": null, + "memory": null + }, + "output_types": [ "ConversationChain" - ] + ], + "documentation": "", + "beta": true, + "error": null }, - "id": "dndnode_49", - "value": null + "id": "ConversationChain-yRXHU" }, - "selected": false, "positionAbsolute": { - "x": 1364.824439016022, - "y": 466.4103762723428 + "x": 1324.2361201682975, + "y": 488.94233102416376 }, + "selected": false, "dragging": false }, { "width": 384, - "height": 597, - "id": "dndnode_50", + "height": 629, + "id": "ChatOpenAI-zkcj3", "type": "genericNode", "position": { - "x": 735.8178700857987, - "y": 706.9245756642823 + "x": 808.3563054680628, + "y": 27.409027598065727 }, "data": { "type": "ChatOpenAI", "node": { "template": { - "verbose": { + "callbacks": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, "password": false, - "name": "verbose", + "name": "callbacks", "advanced": false, - "type": "bool", - "list": false + "dynamic": false, + "info": "", + "type": "langchain.callbacks.base.BaseCallbackHandler", + "list": true }, - "callbacks": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "callbacks", + "name": "cache", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true + "dynamic": false, + "info": "", + "type": "bool", + "list": false }, "client": { "required": false, @@ -283,47 +264,114 @@ "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 + }, + "metadata": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "metadata", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "model_kwargs": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, "model_name": { "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "gpt-4", + "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 }, - "temperature": { + "n": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 1, "password": false, - "name": "temperature", + "name": "n", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -336,22 +384,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -361,6 +398,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -373,6 +412,8 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -384,101 +425,170 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", - "list": false, - "value": 60 + "list": false }, - "max_retries": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, + "value": false, "password": false, - "name": "max_retries", + "name": "streaming", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "streaming": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, "password": false, - "name": "streaming", + "name": "tags", "advanced": false, - "type": "bool", + "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 }, - "n": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "n", + "name": "tiktoken_model_name", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "max_tokens": { + "verbose": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "password": true, - "name": "max_tokens", + "value": false, + "password": false, + "name": "verbose", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, "_type": "ChatOpenAI" }, - "description": "Wrapper around OpenAI Chat large language models.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ "BaseChatModel", + "BaseLanguageModel", "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": "dndnode_50", - "value": null + "id": "ChatOpenAI-zkcj3" }, - "selected": false, "positionAbsolute": { - "x": 735.8178700857987, - "y": 706.9245756642823 - }, - "dragging": false + "x": 808.3563054680628, + "y": 27.409027598065727 + } } ], "edges": [ { - "source": "dndnode_48", - "sourceHandle": "ConversationBufferMemory|dndnode_48|BaseMemory|BaseChatMemory|ConversationBufferMemory", - "target": "dndnode_49", - "targetHandle": "BaseMemory|memory|dndnode_49", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_48ConversationBufferMemory|dndnode_48|BaseMemory|BaseChatMemory|ConversationBufferMemory-dndnode_49BaseMemory|memory|dndnode_49", - "selected": false + "source": "ChatOpenAI-zkcj3", + "sourceHandle": "{œbaseClassesœ:[œBaseChatModelœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-zkcj3œ}", + "target": "ConversationChain-yRXHU", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œConversationChain-yRXHUœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "ConversationChain-yRXHU", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseChatModel", + "BaseLanguageModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-zkcj3" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-zkcj3{œbaseClassesœ:[œBaseChatModelœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-zkcj3œ}-ConversationChain-yRXHU{œfieldNameœ:œllmœ,œidœ:œConversationChain-yRXHUœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" }, { - "source": "dndnode_50", - "sourceHandle": "ChatOpenAI|dndnode_50|BaseChatModel|ChatOpenAI|BaseLanguageModel", - "target": "dndnode_49", - "targetHandle": "BaseLanguageModel|llm|dndnode_49", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_50ChatOpenAI|dndnode_50|BaseChatModel|ChatOpenAI|BaseLanguageModel-dndnode_49BaseLanguageModel|llm|dndnode_49", - "selected": false + "source": "ConversationBufferMemory-MMHD1", + "sourceHandle": "{œbaseClassesœ:[œConversationBufferMemoryœ,œBaseChatMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-MMHD1œ}", + "target": "ConversationChain-yRXHU", + "targetHandle": "{œfieldNameœ:œmemoryœ,œidœ:œConversationChain-yRXHUœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}", + "data": { + "targetHandle": { + "fieldName": "memory", + "id": "ConversationChain-yRXHU", + "inputTypes": null, + "type": "BaseMemory" + }, + "sourceHandle": { + "baseClasses": [ + "ConversationBufferMemory", + "BaseChatMemory", + "BaseMemory" + ], + "dataType": "ConversationBufferMemory", + "id": "ConversationBufferMemory-MMHD1" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ConversationBufferMemory-MMHD1{œbaseClassesœ:[œConversationBufferMemoryœ,œBaseChatMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-MMHD1œ}-ConversationChain-yRXHU{œfieldNameœ:œmemoryœ,œidœ:œConversationChain-yRXHUœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}" } ], "viewport": { - "x": -294.08439029367605, - "y": -256.02349752295527, - "zoom": 0.8235910172675734 + "x": -135.39122898603205, + "y": 115.21449761238358, + "zoom": 0.5200568439218307 } - } + }, + "description": "A Chain that uses a ConversationBufferMemory", + "name": "Buffer Memory" } \ No newline at end of file diff --git a/examples/Calculator.json b/examples/Calculator.json index 47bfcc9..2b3248c 100644 --- a/examples/Calculator.json +++ b/examples/Calculator.json @@ -1,57 +1,15 @@ { - "name": "Calculator", - "description": "Simple getting started guide for constructing a calculator with LangChain and LangFlow", + "id": "810d31e8-a90b-41e1-a1e2-f05d64816419", "data": { "nodes": [ { "width": 384, - "height": 247, - "id": "Calculator-TY0pD", + "height": 429, + "id": "AgentInitializer-k6f23", "type": "genericNode", "position": { - "x": 586.2337066098984, - "y": 100.91360911087611 - }, - "data": { - "type": "Calculator", - "node": { - "template": { - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "llm", - "advanced": false, - "type": "BaseLanguageModel", - "list": false - }, - "_type": "Calculator" - }, - "description": "Useful for when you need to answer questions about math.", - "base_classes": [ - "Tool" - ] - }, - "id": "Calculator-TY0pD", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 586.2337066098984, - "y": 100.91360911087611 - }, - "dragging": false - }, - { - "width": 384, - "height": 387, - "id": "AgentInitializer-Mttew", - "type": "genericNode", - "position": { - "x": 1135.9804160888425, - "y": 230.29999999999995 + "x": 1015.204144902402, + "y": 193.60847457627113 }, "data": { "type": "AgentInitializer", @@ -119,20 +77,20 @@ ], "display_name": "AgentInitializer" }, - "id": "AgentInitializer-Mttew", + "id": "AgentInitializer-k6f23", "value": null }, "selected": false, "positionAbsolute": { - "x": 1135.9804160888425, - "y": 230.29999999999995 + "x": 1015.204144902402, + "y": 193.60847457627113 }, "dragging": false }, { "width": 384, - "height": 611, - "id": "ChatOpenAI-5aAwl", + "height": 649, + "id": "ChatOpenAI-eCapo", "type": "genericNode", "position": { "x": 125.98041608884262, @@ -351,7 +309,7 @@ ], "display_name": "ChatOpenAI" }, - "id": "ChatOpenAI-5aAwl", + "id": "ChatOpenAI-eCapo", "value": null }, "selected": false, @@ -360,55 +318,213 @@ "y": 188.29999999999995 }, "dragging": false + }, + { + "width": 384, + "height": 263, + "id": "Calculator-1t8c5", + "type": "genericNode", + "position": { + "x": 603.5956703261305, + "y": 795.4607240469636 + }, + "data": { + "type": "Calculator", + "node": { + "template": { + "llm": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "llm", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", + "list": false + }, + "_type": "Calculator" + }, + "description": "Useful for when you need to answer questions about math.", + "base_classes": [ + "Tool", + "BaseTool" + ], + "display_name": "Calculator", + "custom_fields": {}, + "output_types": [], + "documentation": "", + "beta": false, + "error": null + }, + "id": "Calculator-1t8c5" + }, + "positionAbsolute": { + "x": 603.5956703261305, + "y": 795.4607240469636 + }, + "selected": false, + "dragging": false } ], "edges": [ { - "source": "Calculator-TY0pD", - "sourceHandle": "Calculator|Calculator-TY0pD|Tool", - "target": "AgentInitializer-Mttew", - "targetHandle": "Tool|tools|AgentInitializer-Mttew", + "source": "Calculator-ExqKF", + "sourceHandle": "{œbaseClassesœ:[œToolœ],œdataTypeœ:œCalculatorœ,œidœ:œCalculator-ExqKFœ}", + "target": "AgentInitializer-k6f23", + "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œToolœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-Calculator-TY0pDCalculator|Calculator-TY0pD|Tool-AgentInitializer-MttewTool|tools|AgentInitializer-Mttew", - "selected": false + "id": "reactflow__edge-Calculator-ExqKF{œbaseClassesœ:[œToolœ],œdataTypeœ:œCalculatorœ,œidœ:œCalculator-ExqKFœ}-AgentInitializer-k6f23{œfieldNameœ:œtoolsœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œToolœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "Tool" + ], + "dataType": "Calculator", + "id": "Calculator-ExqKF" + }, + "targetHandle": { + "fieldName": "tools", + "id": "AgentInitializer-k6f23", + "inputTypes": null, + "type": "Tool" + } + } }, { - "source": "ChatOpenAI-5aAwl", - "sourceHandle": "ChatOpenAI|ChatOpenAI-5aAwl|Serializable|BaseLanguageModel|ChatOpenAI|BaseChatModel", - "target": "Calculator-TY0pD", - "targetHandle": "BaseLanguageModel|llm|Calculator-TY0pD", + "source": "ChatOpenAI-eCapo", + "sourceHandle": "{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}", + "target": "Calculator-ExqKF", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œCalculator-ExqKFœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-ChatOpenAI-5aAwlChatOpenAI|ChatOpenAI-5aAwl|BaseChatModel|Serializable|ChatOpenAI|BaseLanguageModel-Calculator-TY0pDBaseLanguageModel|llm|Calculator-TY0pD", - "selected": false + "id": "reactflow__edge-ChatOpenAI-eCapo{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}-Calculator-ExqKF{œfieldNameœ:œllmœ,œidœ:œCalculator-ExqKFœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "Serializable", + "BaseLanguageModel", + "ChatOpenAI", + "BaseChatModel" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-eCapo" + }, + "targetHandle": { + "fieldName": "llm", + "id": "Calculator-ExqKF", + "inputTypes": null, + "type": "BaseLanguageModel" + } + } }, { - "source": "ChatOpenAI-5aAwl", - "sourceHandle": "ChatOpenAI|ChatOpenAI-5aAwl|Serializable|BaseLanguageModel|ChatOpenAI|BaseChatModel", - "target": "AgentInitializer-Mttew", - "targetHandle": "BaseLanguageModel|llm|AgentInitializer-Mttew", + "source": "ChatOpenAI-eCapo", + "sourceHandle": "{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}", + "target": "AgentInitializer-k6f23", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-ChatOpenAI-5aAwlChatOpenAI|ChatOpenAI-5aAwl|BaseChatModel|Serializable|ChatOpenAI|BaseLanguageModel-AgentInitializer-MttewBaseLanguageModel|llm|AgentInitializer-Mttew", - "selected": false + "id": "reactflow__edge-ChatOpenAI-eCapo{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}-AgentInitializer-k6f23{œfieldNameœ:œllmœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "Serializable", + "BaseLanguageModel", + "ChatOpenAI", + "BaseChatModel" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-eCapo" + }, + "targetHandle": { + "fieldName": "llm", + "id": "AgentInitializer-k6f23", + "inputTypes": null, + "type": "BaseLanguageModel" + } + } + }, + { + "source": "ChatOpenAI-eCapo", + "sourceHandle": "{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}", + "target": "Calculator-1t8c5", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œCalculator-1t8c5œ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "Calculator-1t8c5", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "Serializable", + "BaseLanguageModel", + "ChatOpenAI", + "BaseChatModel" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-eCapo" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-eCapo{œbaseClassesœ:[œSerializableœ,œBaseLanguageModelœ,œChatOpenAIœ,œBaseChatModelœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-eCapoœ}-Calculator-1t8c5{œfieldNameœ:œllmœ,œidœ:œCalculator-1t8c5œ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" + }, + { + "source": "Calculator-1t8c5", + "sourceHandle": "{œbaseClassesœ:[œToolœ,œBaseToolœ],œdataTypeœ:œCalculatorœ,œidœ:œCalculator-1t8c5œ}", + "target": "AgentInitializer-k6f23", + "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œToolœ}", + "data": { + "targetHandle": { + "fieldName": "tools", + "id": "AgentInitializer-k6f23", + "inputTypes": null, + "type": "Tool" + }, + "sourceHandle": { + "baseClasses": [ + "Tool", + "BaseTool" + ], + "dataType": "Calculator", + "id": "Calculator-1t8c5" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-Calculator-1t8c5{œbaseClassesœ:[œToolœ,œBaseToolœ],œdataTypeœ:œCalculatorœ,œidœ:œCalculator-1t8c5œ}-AgentInitializer-k6f23{œfieldNameœ:œtoolsœ,œidœ:œAgentInitializer-k6f23œ,œinputTypesœ:null,œtypeœ:œToolœ}" } ], "viewport": { - "x": 148.036432053203, - "y": 67.39592859107427, - "zoom": 0.5175978215565387 + "x": -40.35014415243097, + "y": 123.33035478588698, + "zoom": 0.6196766537179242 } }, - "id": "3e086fbd-69ea-4c5b-933f-3a45363b6f51", - "style": null + "description": "Simple getting started guide for constructing a calculator with LangChain and LangFlow", + "name": "Calculator" } \ No newline at end of file diff --git a/examples/Conversation Chain.json b/examples/Conversation Chain.json deleted file mode 100644 index 99d8675..0000000 --- a/examples/Conversation Chain.json +++ /dev/null @@ -1,484 +0,0 @@ -{ - "description": "Example of Conversational Chain Flow", - "name": "Conversation Chain", - "id": "94be5cec-a115-44a8-a0ae-81ebbb742a46", - "data": { - "nodes": [ - { - "width": 384, - "height": 273, - "id": "dndnode_197", - "type": "genericNode", - "position": { - "x": 41.77285741205577, - "y": 63.38205429210862 - }, - "data": { - "type": "ConversationBufferMemory", - "node": { - "template": { - "chat_memory": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "chat_memory", - "advanced": false, - "type": "BaseChatMessageHistory", - "list": false - }, - "output_key": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "output_key", - "advanced": false, - "type": "str", - "list": false - }, - "input_key": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "input_key", - "advanced": false, - "type": "str", - "list": false - }, - "return_messages": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "return_messages", - "advanced": false, - "type": "bool", - "list": false - }, - "human_prefix": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": "Human", - "password": false, - "name": "human_prefix", - "advanced": false, - "type": "str", - "list": false - }, - "ai_prefix": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": "AI", - "password": false, - "name": "ai_prefix", - "advanced": false, - "type": "str", - "list": false - }, - "memory_key": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": "history", - "password": false, - "name": "memory_key", - "advanced": false, - "type": "str", - "list": false - }, - "_type": "ConversationBufferMemory" - }, - "description": "Buffer for storing conversation memory.", - "base_classes": [ - "BaseChatMemory", - "ConversationBufferMemory", - "BaseMemory" - ] - }, - "id": "dndnode_197", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 41.77285741205577, - "y": 63.38205429210862 - }, - "dragging": false - }, - { - "width": 384, - "height": 597, - "id": "dndnode_198", - "type": "genericNode", - "position": { - "x": 36.69238553788068, - "y": 467.8198042261215 - }, - "data": { - "type": "ChatOpenAI", - "node": { - "template": { - "verbose": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": false, - "password": false, - "name": "verbose", - "advanced": false, - "type": "bool", - "list": false - }, - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, - "client": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "client", - "advanced": false, - "type": "Any", - "list": false - }, - "model_name": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": "gpt-3.5-turbo", - "password": false, - "options": [ - "gpt-3.5-turbo", - "gpt-4", - "gpt-4-32k" - ], - "name": "model_name", - "advanced": false, - "type": "str", - "list": true - }, - "temperature": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": 0.7, - "password": false, - "name": "temperature", - "advanced": false, - "type": "float", - "list": false - }, - "model_kwargs": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", - "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, - "type": "str", - "list": false - }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, - "openai_organization": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "openai_organization", - "display_name": "OpenAI Organization", - "advanced": false, - "type": "str", - "list": false - }, - "openai_proxy": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "openai_proxy", - "display_name": "OpenAI Proxy", - "advanced": false, - "type": "str", - "list": false - }, - "request_timeout": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "request_timeout", - "advanced": false, - "type": "float", - "list": false, - "value": 60 - }, - "max_retries": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 6, - "password": false, - "name": "max_retries", - "advanced": false, - "type": "int", - "list": false - }, - "streaming": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": false, - "password": false, - "name": "streaming", - "advanced": false, - "type": "bool", - "list": false - }, - "n": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 1, - "password": false, - "name": "n", - "advanced": false, - "type": "int", - "list": false - }, - "max_tokens": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "max_tokens", - "advanced": false, - "type": "int", - "list": false - }, - "_type": "ChatOpenAI" - }, - "description": "Wrapper around OpenAI Chat large language models.", - "base_classes": [ - "ChatOpenAI", - "BaseChatModel", - "BaseLanguageModel" - ] - }, - "id": "dndnode_198", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 36.69238553788068, - "y": 467.8198042261215 - }, - "dragging": false - }, - { - "width": 384, - "height": 287, - "id": "dndnode_199", - "type": "genericNode", - "position": { - "x": 621.9726549474123, - "y": 103.02734505258763 - }, - "data": { - "type": "ConversationChain", - "node": { - "template": { - "memory": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "memory", - "advanced": false, - "type": "BaseMemory", - "list": false - }, - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, - "verbose": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "verbose", - "advanced": true, - "type": "bool", - "list": false - }, - "prompt": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": { - "input_variables": [ - "history", - "input" - ], - "output_parser": null, - "partial_variables": {}, - "template": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:", - "template_format": "f-string", - "validate_template": true, - "_type": "prompt" - }, - "password": false, - "name": "prompt", - "advanced": false, - "type": "BasePromptTemplate", - "list": false - }, - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "llm", - "advanced": false, - "type": "BaseLanguageModel", - "list": false - }, - "output_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "response", - "password": false, - "name": "output_key", - "advanced": true, - "type": "str", - "list": false - }, - "input_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "input", - "password": false, - "name": "input_key", - "advanced": true, - "type": "str", - "list": false - }, - "_type": "ConversationChain" - }, - "description": "Chain to have a conversation and load context from memory.", - "base_classes": [ - "ConversationChain", - "LLMChain", - "Chain" - ] - }, - "id": "dndnode_199", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 621.9726549474123, - "y": 103.02734505258763 - }, - "dragging": false - } - ], - "edges": [ - { - "source": "dndnode_197", - "sourceHandle": "ConversationBufferMemory|dndnode_197|BaseChatMemory|ConversationBufferMemory|BaseMemory", - "target": "dndnode_199", - "targetHandle": "BaseMemory|memory|dndnode_199", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_197ConversationBufferMemory|dndnode_197|BaseChatMemory|ConversationBufferMemory|BaseMemory-dndnode_199BaseMemory|memory|dndnode_199", - "selected": false - }, - { - "source": "dndnode_198", - "sourceHandle": "ChatOpenAI|dndnode_198|ChatOpenAI|BaseChatModel|BaseLanguageModel", - "target": "dndnode_199", - "targetHandle": "BaseLanguageModel|llm|dndnode_199", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_198ChatOpenAI|dndnode_198|ChatOpenAI|BaseChatModel|BaseLanguageModel-dndnode_199BaseLanguageModel|llm|dndnode_199", - "selected": false - } - ], - "viewport": { - "x": 184.01367252629387, - "y": 21.486327473706183, - "zoom": 0.5 - } - } -} \ No newline at end of file diff --git a/examples/Github Issue Parser.json b/examples/Github Issue Parser.json index c78b161..9e97685 100644 --- a/examples/Github Issue Parser.json +++ b/examples/Github Issue Parser.json @@ -1 +1,1187 @@ -{"description":"Gets Issues from Langflow repo and output them as JSON objects.","name":"Github Issue Parser","data":{"nodes":[{"width":384,"height":307,"id":"LLMChain-QzkmA","type":"genericNode","position":{"x":2186,"y":544.28125},"data":{"type":"LLMChain","node":{"template":{"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"info":"","type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"info":"","type":"BaseMemory","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"info":"","type":"BaseLLMOutputParser","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"info":"","type":"BasePromptTemplate","list":false},"llm_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm_kwargs","advanced":false,"info":"","type":"code","list":false},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"info":"","type":"code","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"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,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"info":"","type":"str","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"info":"","type":"bool","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"],"display_name":"LLMChain","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain"},"id":"LLMChain-QzkmA","value":null},"selected":false,"positionAbsolute":{"x":2186,"y":544.28125},"dragging":false},{"width":384,"height":617,"id":"PromptTemplate-y4OEo","type":"genericNode","position":{"x":1487.7550031104279,"y":10.572381253849244},"data":{"type":"PromptTemplate","node":{"template":{"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"info":"","type":"BaseOutputParser","list":false},"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"info":"","type":"str","list":true,"value":["repo_url","number_of_issues","issues","format_instructions"]},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"info":"","type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"info":"","type":"prompt","list":false,"value":"In the text below, there will be a list of issues from the Langflow repo({repo_url}).\nThe task is to extract the title, author and last_updated for {number_of_issues} issues.\n\n{issues}\n\n{format_instructions}\n\n- If you can't find one of the information, just pass an empty string like ''. \n- If there's more than one issue, create a list of JSON objects.\n"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"info":"","type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"info":"","type":"bool","list":false},"_type":"PromptTemplate","repo_url":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"https://github.com/logspace-ai/langflow","password":false,"name":"repo_url","display_name":"repo_url","advanced":false,"input_types":["Document","BaseOutputParser"],"info":"","type":"str","list":false},"number_of_issues":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"number_of_issues","display_name":"number_of_issues","advanced":false,"input_types":["Document","BaseOutputParser"],"info":"","type":"str","list":false},"issues":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"issues","display_name":"issues","advanced":false,"input_types":["Document","BaseOutputParser"],"info":"","type":"str","list":false},"format_instructions":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"format_instructions","display_name":"format_instructions","advanced":false,"input_types":["Document","BaseOutputParser"],"info":"","type":"str","list":false}},"description":"Schema to represent a prompt for an LLM.","base_classes":["StringPromptTemplate","PromptTemplate","BasePromptTemplate"],"name":"","display_name":"PromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/","custom_fields":{"":["repo_url","number_of_issues","issues","format_instructions"]},"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"]}}}}},"id":"PromptTemplate-y4OEo","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":1487.7550031104279,"y":10.572381253849244}},{"width":384,"height":621,"id":"ChatOpenAI-29u2P","type":"genericNode","position":{"x":1483.7239975266027,"y":669.3971466143861},"data":{"type":"ChatOpenAI","node":{"template":{"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"info":"","type":"bool","list":false},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"info":"","type":"Any","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"info":"","type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"info":"","type":"int","list":false,"value":""},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"info":"","type":"code","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"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,"info":"","type":"str","list":true},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":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,"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,"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,"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,"info":"","type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"info":"","type":"float","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"info":"","type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"info":"","type":"float","list":false},"tiktoken_model_name":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tiktoken_model_name","advanced":false,"info":"","type":"str","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"info":"","type":"bool","list":false},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["ChatOpenAI","BaseLanguageModel","BaseChatModel","BaseLLM"],"display_name":"ChatOpenAI","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai"},"id":"ChatOpenAI-29u2P","value":null},"selected":false,"positionAbsolute":{"x":1483.7239975266027,"y":669.3971466143861},"dragging":false},{"width":384,"height":379,"id":"WebBaseLoader-zknYj","type":"genericNode","position":{"x":769.255740690712,"y":-66.92435295205902},"data":{"type":"WebBaseLoader","node":{"template":{"metadata":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"{}","password":false,"name":"metadata","display_name":"Metadata","advanced":false,"info":"","type":"code","list":false},"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://github.com/logspace-ai/langflow/issues?q=is:issue+is:open+sort:updated-desc","password":false,"name":"web_path","display_name":"Web Page","advanced":false,"info":"","type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["Document"],"display_name":"WebBaseLoader","custom_fields":{},"output_types":["Document"],"documentation":"https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base"},"id":"WebBaseLoader-zknYj","value":null},"selected":false,"positionAbsolute":{"x":769.255740690712,"y":-66.92435295205902},"dragging":false},{"width":384,"height":207,"id":"StructuredOutputParser-k2ui8","type":"genericNode","position":{"x":784.4425371799673,"y":369.3130308646057},"data":{"type":"StructuredOutputParser","node":{"template":{"response_schemas":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"response_schemas","advanced":false,"info":"","type":"ResponseSchema","list":true},"_type":"StructuredOutputParser"},"description":"","base_classes":["Generic","StructuredOutputParser","BaseLLMOutputParser","BaseOutputParser"],"display_name":"StructuredOutputParser","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/output_parsers/structured"},"id":"StructuredOutputParser-k2ui8","value":null},"selected":false,"positionAbsolute":{"x":784.4425371799673,"y":369.3130308646057},"dragging":false},{"width":384,"height":425,"id":"ResponseSchema-gLjtt","type":"genericNode","position":{"x":216.1189209515943,"y":204.9292111664579},"data":{"type":"ResponseSchema","node":{"template":{"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"info":"","type":"str","list":false,"value":"tittle of the issue"},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"info":"","type":"str","list":false,"value":"title"},"type":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"string","password":false,"name":"type","advanced":false,"info":"","type":"str","list":false},"_type":"ResponseSchema"},"description":"","base_classes":["ResponseSchema"],"display_name":"ResponseSchema","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/output_parsers/structured"},"id":"ResponseSchema-gLjtt","value":null},"selected":false,"positionAbsolute":{"x":216.1189209515943,"y":204.9292111664579},"dragging":false},{"width":384,"height":425,"id":"ResponseSchema-xgtN9","type":"genericNode","position":{"x":202.35985494557065,"y":672.782962772499},"data":{"type":"ResponseSchema","node":{"template":{"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"info":"","type":"str","list":false,"value":"author of the issue"},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"info":"","type":"str","list":false,"value":"author"},"type":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"string","password":false,"name":"type","advanced":false,"info":"","type":"str","list":false},"_type":"ResponseSchema"},"description":"","base_classes":["ResponseSchema"],"display_name":"ResponseSchema","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/output_parsers/structured"},"id":"ResponseSchema-xgtN9","value":null},"selected":false,"positionAbsolute":{"x":202.35985494557065,"y":672.782962772499},"dragging":false},{"width":384,"height":425,"id":"ResponseSchema-GUuNL","type":"genericNode","position":{"x":208.95930511608958,"y":1143.2299735204035},"data":{"type":"ResponseSchema","node":{"template":{"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"info":"","type":"str","list":false,"value":"last updated date"},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"info":"","type":"str","list":false,"value":"last_updated"},"type":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"string","password":false,"name":"type","advanced":false,"info":"","type":"str","list":false},"_type":"ResponseSchema"},"description":"","base_classes":["ResponseSchema"],"display_name":"ResponseSchema","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/output_parsers/structured"},"id":"ResponseSchema-GUuNL","value":null},"selected":false,"positionAbsolute":{"x":208.95930511608958,"y":1143.2299735204035},"dragging":false}],"edges":[{"source":"ChatOpenAI-29u2P","sourceHandle":"ChatOpenAI|ChatOpenAI-29u2P|ChatOpenAI|BaseLanguageModel|BaseChatModel|BaseLLM","target":"LLMChain-QzkmA","targetHandle":"BaseLanguageModel|llm|LLMChain-QzkmA","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-ChatOpenAI-29u2PChatOpenAI|ChatOpenAI-29u2P|ChatOpenAI|BaseLanguageModel|BaseChatModel|BaseLLM-LLMChain-QzkmABaseLanguageModel|llm|LLMChain-QzkmA","selected":false},{"source":"PromptTemplate-y4OEo","sourceHandle":"PromptTemplate|PromptTemplate-y4OEo|StringPromptTemplate|PromptTemplate|BasePromptTemplate","target":"LLMChain-QzkmA","targetHandle":"BasePromptTemplate|prompt|LLMChain-QzkmA","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-PromptTemplate-y4OEoPromptTemplate|PromptTemplate-y4OEo|StringPromptTemplate|PromptTemplate|BasePromptTemplate-LLMChain-QzkmABasePromptTemplate|prompt|LLMChain-QzkmA","selected":false},{"source":"WebBaseLoader-zknYj","sourceHandle":"WebBaseLoader|WebBaseLoader-zknYj|Document","target":"PromptTemplate-y4OEo","targetHandle":"Document;BaseOutputParser|issues|PromptTemplate-y4OEo","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-WebBaseLoader-zknYjWebBaseLoader|WebBaseLoader-zknYj|Document-PromptTemplate-y4OEoDocument;BaseOutputParser|issues|PromptTemplate-y4OEo","selected":false},{"source":"StructuredOutputParser-k2ui8","sourceHandle":"StructuredOutputParser|StructuredOutputParser-k2ui8|Generic|StructuredOutputParser|BaseLLMOutputParser|BaseOutputParser","target":"PromptTemplate-y4OEo","targetHandle":"Document;BaseOutputParser|format_instructions|PromptTemplate-y4OEo","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-StructuredOutputParser-k2ui8StructuredOutputParser|StructuredOutputParser-k2ui8|Generic|StructuredOutputParser|BaseLLMOutputParser|BaseOutputParser-PromptTemplate-y4OEoDocument;BaseOutputParser|format_instructions|PromptTemplate-y4OEo","selected":false},{"source":"ResponseSchema-GUuNL","sourceHandle":"ResponseSchema|ResponseSchema-GUuNL|ResponseSchema","target":"StructuredOutputParser-k2ui8","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-ResponseSchema-GUuNLResponseSchema|ResponseSchema-GUuNL|ResponseSchema-StructuredOutputParser-k2ui8ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","selected":false},{"source":"ResponseSchema-xgtN9","sourceHandle":"ResponseSchema|ResponseSchema-xgtN9|ResponseSchema","target":"StructuredOutputParser-k2ui8","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-ResponseSchema-xgtN9ResponseSchema|ResponseSchema-xgtN9|ResponseSchema-StructuredOutputParser-k2ui8ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","selected":false},{"source":"ResponseSchema-gLjtt","sourceHandle":"ResponseSchema|ResponseSchema-gLjtt|ResponseSchema","target":"StructuredOutputParser-k2ui8","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","style":{"stroke":"inherit"},"className":"stroke-foreground ","animated":false,"id":"reactflow__edge-ResponseSchema-gLjttResponseSchema|ResponseSchema-gLjtt|ResponseSchema-StructuredOutputParser-k2ui8ResponseSchema|response_schemas|StructuredOutputParser-k2ui8","selected":false}],"viewport":{"x":-30.215275897131164,"y":144.8852511141646,"zoom":0.7017796311458808}},"id":"4060dd60-6a89-4cb6-9a7f-a071eca30378"} \ No newline at end of file +{ + "id": "40984afa-d5c8-4106-9ac1-9a61fa93d0c0", + "data": { + "nodes": [ + { + "width": 384, + "height": 657, + "id": "PromptTemplate-pP7tN", + "type": "genericNode", + "position": { + "x": 1528.325062605035, + "y": -90.85276748266875 + }, + "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": [ + "repo_url", + "number_of_issues", + "issues", + "format_instructions" + ] + }, + "partial_variables": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "partial_variables", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "template": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "password": false, + "name": "template", + "advanced": false, + "dynamic": false, + "info": "", + "type": "prompt", + "list": false, + "value": "In the text below, there will be a list of issues from the Langflow repo({repo_url}).\nThe task is to extract the title, author and last_updated for {number_of_issues} issues.\n\n{issues}\n\n{format_instructions}\n\n- If you can't find one of the information, just pass an empty string like ''. \n- If there's more than one issue, create a list of JSON objects.\n" + }, + "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", + "repo_url": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "repo_url", + "display_name": "repo_url", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "number_of_issues": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "number_of_issues", + "display_name": "number_of_issues", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "issues": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "issues", + "display_name": "issues", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "format_instructions": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "format_instructions", + "display_name": "format_instructions", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + } + }, + "description": "A prompt template for a language model.", + "base_classes": [ + "StringPromptTemplate", + "PromptTemplate", + "BasePromptTemplate" + ], + "name": "", + "display_name": "PromptTemplate", + "documentation": "https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/", + "custom_fields": { + "": [ + "repo_url", + "number_of_issues", + "issues", + "format_instructions" + ], + "template": [ + "repo_url", + "number_of_issues", + "issues", + "format_instructions" + ] + }, + "output_types": [], + "field_formatters": {}, + "beta": false, + "error": null + }, + "id": "PromptTemplate-pP7tN", + "value": null + }, + "selected": false, + "dragging": false, + "positionAbsolute": { + "x": 1528.325062605035, + "y": -90.85276748266875 + } + }, + { + "width": 384, + "height": 629, + "id": "ChatOpenAI-qh190", + "type": "genericNode", + "position": { + "x": 1498.7361464926273, + "y": 691.9153700634232 + }, + "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": "dict", + "list": false + }, + "model_kwargs": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", + "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": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "BaseLLM" + ], + "display_name": "ChatOpenAI", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai" + }, + "id": "ChatOpenAI-qh190", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 1498.7361464926273, + "y": 691.9153700634232 + }, + "dragging": false + }, + { + "width": 384, + "height": 387, + "id": "WebBaseLoader-N6X1C", + "type": "genericNode", + "position": { + "x": 769.255740690712, + "y": -66.92435295205902 + }, + "data": { + "type": "WebBaseLoader", + "node": { + "template": { + "metadata": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": [ + { + "": "" + } + ], + "password": false, + "name": "metadata", + "display_name": "Metadata", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "web_path": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "value": "https://github.com/logspace-ai/langflow/issues?q=is:issue+is:open+sort:updated-desc", + "password": false, + "name": "web_path", + "display_name": "Web Page", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "_type": "WebBaseLoader" + }, + "description": "Load HTML pages using `urllib` and parse them with `BeautifulSoup'.", + "base_classes": [ + "Document" + ], + "display_name": "WebBaseLoader", + "custom_fields": {}, + "output_types": [ + "Document" + ], + "documentation": "https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base" + }, + "id": "WebBaseLoader-N6X1C", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 769.255740690712, + "y": -66.92435295205902 + }, + "dragging": false + }, + { + "width": 384, + "height": 203, + "id": "StructuredOutputParser-i6HJg", + "type": "genericNode", + "position": { + "x": 784.4425371799673, + "y": 369.3130308646057 + }, + "data": { + "type": "StructuredOutputParser", + "node": { + "template": { + "response_schemas": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "response_schemas", + "advanced": false, + "dynamic": false, + "info": "", + "type": "ResponseSchema", + "list": true + }, + "_type": "StructuredOutputParser" + }, + "description": "", + "base_classes": [ + "StructuredOutputParser", + "BaseLLMOutputParser", + "BaseOutputParser" + ], + "display_name": "StructuredOutputParser", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/output_parsers/structured" + }, + "id": "StructuredOutputParser-i6HJg", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 784.4425371799673, + "y": 369.3130308646057 + }, + "dragging": false + }, + { + "width": 384, + "height": 473, + "id": "ResponseSchema-jpYlR", + "type": "genericNode", + "position": { + "x": 216.1189209515943, + "y": 204.9292111664579 + }, + "data": { + "type": "ResponseSchema", + "node": { + "template": { + "description": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "password": false, + "name": "description", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "tittle of the issue" + }, + "name": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "name", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "title" + }, + "type": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": "string", + "password": false, + "name": "type", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "_type": "ResponseSchema" + }, + "description": "A schema for a response from a structured output parser.", + "base_classes": [ + "ResponseSchema" + ], + "display_name": "ResponseSchema", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/output_parsers/structured" + }, + "id": "ResponseSchema-jpYlR", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 216.1189209515943, + "y": 204.9292111664579 + }, + "dragging": false + }, + { + "width": 384, + "height": 473, + "id": "ResponseSchema-FSrUI", + "type": "genericNode", + "position": { + "x": 202.35985494557065, + "y": 672.782962772499 + }, + "data": { + "type": "ResponseSchema", + "node": { + "template": { + "description": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "password": false, + "name": "description", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "author of the issue" + }, + "name": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "name", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "author" + }, + "type": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": "string", + "password": false, + "name": "type", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "_type": "ResponseSchema" + }, + "description": "A schema for a response from a structured output parser.", + "base_classes": [ + "ResponseSchema" + ], + "display_name": "ResponseSchema", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/output_parsers/structured" + }, + "id": "ResponseSchema-FSrUI", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 202.35985494557065, + "y": 672.782962772499 + }, + "dragging": false + }, + { + "width": 384, + "height": 473, + "id": "ResponseSchema-eBRgt", + "type": "genericNode", + "position": { + "x": 208.95930511608958, + "y": 1143.2299735204035 + }, + "data": { + "type": "ResponseSchema", + "node": { + "template": { + "description": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "password": false, + "name": "description", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "last updated date" + }, + "name": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "name", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "last_updated" + }, + "type": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": "string", + "password": false, + "name": "type", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "_type": "ResponseSchema" + }, + "description": "A schema for a response from a structured output parser.", + "base_classes": [ + "ResponseSchema" + ], + "display_name": "ResponseSchema", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/output_parsers/structured" + }, + "id": "ResponseSchema-eBRgt", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 208.95930511608958, + "y": 1143.2299735204035 + }, + "dragging": false + }, + { + "width": 384, + "height": 339, + "id": "LLMChain-WvwvC", + "type": "genericNode", + "position": { + "x": 2231.3778875293547, + "y": 512.034177268604 + }, + "data": { + "type": "LLMChain", + "node": { + "template": { + "code": { + "dynamic": true, + "required": true, + "placeholder": "", + "show": false, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import LLMChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import PromptTemplate, BaseLanguageModel, BaseMemory, Chain\n\n\nclass LLMChainComponent(CustomComponent):\n display_name = \"LLMChain\"\n description = \"Chain to run queries against LLMs\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\"display_name\": \"Memory\"},\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n prompt: PromptTemplate,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n return LLMChain(prompt=prompt, llm=llm, memory=memory)\n", + "password": false, + "name": "code", + "advanced": false, + "type": "code", + "list": false + }, + "_type": "CustomComponent", + "llm": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "llm", + "display_name": "LLM", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", + "list": false + }, + "memory": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "memory", + "display_name": "Memory", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseMemory", + "list": false + }, + "prompt": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "prompt", + "display_name": "Prompt", + "advanced": false, + "dynamic": false, + "info": "", + "type": "PromptTemplate", + "list": false + } + }, + "description": "Chain to run queries against LLMs", + "base_classes": [ + "Chain", + "Callable" + ], + "display_name": "LLMChain", + "custom_fields": { + "llm": null, + "memory": null, + "prompt": null + }, + "output_types": [ + "LLMChain" + ], + "documentation": "", + "beta": true, + "error": null + }, + "id": "LLMChain-WvwvC" + }, + "positionAbsolute": { + "x": 2231.3778875293547, + "y": 512.034177268604 + } + } + ], + "edges": [ + { + "source": "WebBaseLoader-N6X1C", + "sourceHandle": "{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œWebBaseLoaderœ,œidœ:œWebBaseLoader-N6X1Cœ}", + "target": "PromptTemplate-pP7tN", + "targetHandle": "{œfieldNameœ:œissuesœ,œidœ:œPromptTemplate-pP7tNœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", + "style": { + "stroke": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": false, + "id": "reactflow__edge-WebBaseLoader-N6X1C{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œWebBaseLoaderœ,œidœ:œWebBaseLoader-N6X1Cœ}-PromptTemplate-pP7tN{œfieldNameœ:œissuesœ,œidœ:œPromptTemplate-pP7tNœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "Document" + ], + "dataType": "WebBaseLoader", + "id": "WebBaseLoader-N6X1C" + }, + "targetHandle": { + "fieldName": "issues", + "id": "PromptTemplate-pP7tN", + "inputTypes": [ + "Document", + "BaseOutputParser" + ], + "type": "str" + } + } + }, + { + "source": "StructuredOutputParser-i6HJg", + "sourceHandle": "{œbaseClassesœ:[œStructuredOutputParserœ,œBaseLLMOutputParserœ,œBaseOutputParserœ],œdataTypeœ:œStructuredOutputParserœ,œidœ:œStructuredOutputParser-i6HJgœ}", + "target": "PromptTemplate-pP7tN", + "targetHandle": "{œfieldNameœ:œformat_instructionsœ,œidœ:œPromptTemplate-pP7tNœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", + "style": { + "stroke": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": false, + "id": "reactflow__edge-StructuredOutputParser-i6HJg{œbaseClassesœ:[œStructuredOutputParserœ,œBaseLLMOutputParserœ,œBaseOutputParserœ],œdataTypeœ:œStructuredOutputParserœ,œidœ:œStructuredOutputParser-i6HJgœ}-PromptTemplate-pP7tN{œfieldNameœ:œformat_instructionsœ,œidœ:œPromptTemplate-pP7tNœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "StructuredOutputParser", + "BaseLLMOutputParser", + "BaseOutputParser" + ], + "dataType": "StructuredOutputParser", + "id": "StructuredOutputParser-i6HJg" + }, + "targetHandle": { + "fieldName": "format_instructions", + "id": "PromptTemplate-pP7tN", + "inputTypes": [ + "Document", + "BaseOutputParser" + ], + "type": "str" + } + } + }, + { + "source": "ResponseSchema-eBRgt", + "sourceHandle": "{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-eBRgtœ}", + "target": "StructuredOutputParser-i6HJg", + "targetHandle": "{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "style": { + "stroke": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": false, + "id": "reactflow__edge-ResponseSchema-eBRgt{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-eBRgtœ}-StructuredOutputParser-i6HJg{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "ResponseSchema" + ], + "dataType": "ResponseSchema", + "id": "ResponseSchema-eBRgt" + }, + "targetHandle": { + "fieldName": "response_schemas", + "id": "StructuredOutputParser-i6HJg", + "inputTypes": null, + "type": "ResponseSchema" + } + } + }, + { + "source": "ResponseSchema-FSrUI", + "sourceHandle": "{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-FSrUIœ}", + "target": "StructuredOutputParser-i6HJg", + "targetHandle": "{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "style": { + "stroke": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": false, + "id": "reactflow__edge-ResponseSchema-FSrUI{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-FSrUIœ}-StructuredOutputParser-i6HJg{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "ResponseSchema" + ], + "dataType": "ResponseSchema", + "id": "ResponseSchema-FSrUI" + }, + "targetHandle": { + "fieldName": "response_schemas", + "id": "StructuredOutputParser-i6HJg", + "inputTypes": null, + "type": "ResponseSchema" + } + } + }, + { + "source": "ResponseSchema-jpYlR", + "sourceHandle": "{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-jpYlRœ}", + "target": "StructuredOutputParser-i6HJg", + "targetHandle": "{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "style": { + "stroke": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": false, + "id": "reactflow__edge-ResponseSchema-jpYlR{œbaseClassesœ:[œResponseSchemaœ],œdataTypeœ:œResponseSchemaœ,œidœ:œResponseSchema-jpYlRœ}-StructuredOutputParser-i6HJg{œfieldNameœ:œresponse_schemasœ,œidœ:œStructuredOutputParser-i6HJgœ,œinputTypesœ:null,œtypeœ:œResponseSchemaœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "ResponseSchema" + ], + "dataType": "ResponseSchema", + "id": "ResponseSchema-jpYlR" + }, + "targetHandle": { + "fieldName": "response_schemas", + "id": "StructuredOutputParser-i6HJg", + "inputTypes": null, + "type": "ResponseSchema" + } + } + }, + { + "source": "PromptTemplate-pP7tN", + "sourceHandle": "{œbaseClassesœ:[œStringPromptTemplateœ,œPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-pP7tNœ}", + "target": "LLMChain-WvwvC", + "targetHandle": "{œfieldNameœ:œpromptœ,œidœ:œLLMChain-WvwvCœ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}", + "data": { + "targetHandle": { + "fieldName": "prompt", + "id": "LLMChain-WvwvC", + "inputTypes": null, + "type": "PromptTemplate" + }, + "sourceHandle": { + "baseClasses": [ + "StringPromptTemplate", + "PromptTemplate", + "BasePromptTemplate" + ], + "dataType": "PromptTemplate", + "id": "PromptTemplate-pP7tN" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-PromptTemplate-pP7tN{œbaseClassesœ:[œStringPromptTemplateœ,œPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œPromptTemplateœ,œidœ:œPromptTemplate-pP7tNœ}-LLMChain-WvwvC{œfieldNameœ:œpromptœ,œidœ:œLLMChain-WvwvCœ,œinputTypesœ:null,œtypeœ:œPromptTemplateœ}" + }, + { + "source": "ChatOpenAI-qh190", + "sourceHandle": "{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-qh190œ}", + "target": "LLMChain-WvwvC", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œLLMChain-WvwvCœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "LLMChain-WvwvC", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-qh190" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-qh190{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-qh190œ}-LLMChain-WvwvC{œfieldNameœ:œllmœ,œidœ:œLLMChain-WvwvCœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" + } + ], + "viewport": { + "x": -23.341286557521812, + "y": 178.2757460204641, + "zoom": 0.385116878391678 + } + }, + "description": "Gets Issues from Langflow repo and output them as JSON objects.", + "name": "Github Issue Parser" +} \ No newline at end of file diff --git a/examples/JSON Agent.json b/examples/JSON Agent.json index 1782909..c50e004 100644 --- a/examples/JSON Agent.json +++ b/examples/JSON Agent.json @@ -1,17 +1,77 @@ { - "description": "Query an API spec to get information about the endpoints, parameters, and responses.", - "name": "JSON Agent", - "id": "e364ff2d-fa4f-41fa-8412-f4a91cbe1d44", + "id": "3ba3d163-c4c8-40b2-b7e5-ccec4aecc31f", "data": { "nodes": [ { "width": 384, - "height": 227, - "id": "dndnode_13", + "height": 291, + "id": "JsonAgent-XYfTc", + "type": "genericNode", + "position": { + "x": 1645.2533674832625, + "y": -173.20983116572305 + }, + "data": { + "type": "JsonAgent", + "node": { + "template": { + "llm": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "llm", + "display_name": "LLM", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", + "list": false + }, + "toolkit": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "toolkit", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseToolkit", + "list": false + }, + "_type": "json_agent" + }, + "description": "Construct a json agent from an LLM and tools.", + "base_classes": [ + "AgentExecutor" + ], + "display_name": "JsonAgent", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/agents/toolkits/openapi", + "beta": false, + "error": null + }, + "id": "JsonAgent-XYfTc" + }, + "positionAbsolute": { + "x": 1645.2533674832625, + "y": -173.20983116572305 + }, + "selected": false, + "dragging": false + }, + { + "width": 384, + "height": 243, + "id": "JsonToolkit-xGIbb", "type": "genericNode", "position": { - "x": 1187.2084622072437, - "y": 116.13738146259979 + "x": 1186.0375506003625, + "y": 72.9857208513447 }, "data": { "type": "JsonToolkit", @@ -25,6 +85,8 @@ "password": false, "name": "spec", "advanced": false, + "dynamic": false, + "info": "", "type": "JsonSpec", "list": false }, @@ -33,118 +95,140 @@ "description": "Toolkit for interacting with a JSON spec.", "base_classes": [ "BaseToolkit", - "JsonToolkit" - ] + "JsonToolkit", + "Tool" + ], + "display_name": "JsonToolkit", + "custom_fields": {}, + "output_types": [], + "documentation": "", + "beta": false, + "error": null }, - "id": "dndnode_13", - "value": null + "id": "JsonToolkit-xGIbb" }, - "selected": false, "positionAbsolute": { - "x": 1187.2084622072437, - "y": 116.13738146259979 + "x": 1186.0375506003625, + "y": 72.9857208513447 }, + "selected": false, "dragging": false }, { "width": 384, - "height": 267, - "id": "dndnode_15", + "height": 327, + "id": "JsonSpec-MahH4", "type": "genericNode", "position": { - "x": 1659.6395547893094, - "y": 397.52506741326164 + "x": 669.2014981390005, + "y": -54.47722451919397 }, "data": { - "type": "JsonAgent", + "type": "JsonSpec", "node": { "template": { - "toolkit": { + "path": { "required": true, "placeholder": "", "show": true, "multiline": false, + "value": "", + "suffixes": [ + ".json", + ".yaml", + ".yml" + ], "password": false, - "name": "toolkit", + "name": "path", "advanced": false, - "type": "BaseToolkit", - "list": false + "dynamic": false, + "info": "", + "type": "file", + "list": false, + "fileTypes": [ + "json", + "yaml", + "yml" + ], + "file_path": null }, - "llm": { + "max_value_length": { "required": true, "placeholder": "", "show": true, "multiline": false, + "value": "", "password": false, - "name": "llm", - "display_name": "LLM", + "name": "max_value_length", "advanced": false, - "type": "BaseLanguageModel", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "_type": "json_agent" + "_type": "JsonSpec" }, - "description": "Construct a json agent from an LLM and tools.", + "description": "", "base_classes": [ - "AgentExecutor" - ] + "Tool", + "BaseTool", + "JsonSpec" + ], + "display_name": "JsonSpec", + "custom_fields": {}, + "output_types": [], + "documentation": "", + "beta": false, + "error": null }, - "id": "dndnode_15", - "value": null + "id": "JsonSpec-MahH4" }, "selected": false, "positionAbsolute": { - "x": 1659.6395547893094, - "y": 397.52506741326164 + "x": 669.2014981390005, + "y": -54.47722451919397 }, "dragging": false }, { "width": 384, - "height": 597, - "id": "dndnode_17", + "height": 629, + "id": "ChatOpenAI-v911K", "type": "genericNode", "position": { - "x": 664.5046837368179, - "y": 351.4165918614485 + "x": 1186.0375506003627, + "y": -702.2683578406986 }, "data": { - "type": "OpenAI", + "type": "ChatOpenAI", "node": { "template": { - "cache": { + "callbacks": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "cache", + "name": "callbacks", "advanced": false, - "type": "bool", - "list": false + "dynamic": false, + "info": "", + "type": "langchain.callbacks.base.BaseCallbackHandler", + "list": true }, - "verbose": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "verbose", + "name": "cache", "advanced": false, + "dynamic": false, + "info": "", "type": "bool", "list": false }, - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, "client": { "required": false, "placeholder": "", @@ -153,38 +237,23 @@ "password": false, "name": "client", "advanced": false, + "dynamic": false, + "info": "", "type": "Any", "list": false }, - "model_name": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": "text-davinci-003", - "password": false, - "options": [ - "text-davinci-003", - "text-davinci-002", - "text-curie-001", - "text-babbage-001", - "text-ada-001" - ], - "name": "model_name", - "advanced": false, - "type": "str", - "list": true - }, - "temperature": { + "max_retries": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 6, "password": false, - "name": "temperature", + "name": "max_retries", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, "max_tokens": { @@ -192,48 +261,63 @@ "placeholder": "", "show": true, "multiline": false, - "value": 256, "password": true, "name": "max_tokens", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "top_p": { + "metadata": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "top_p", + "name": "metadata", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "frequency_penalty": { + "model_kwargs": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, "password": false, - "name": "frequency_penalty", - "advanced": false, - "type": "float", + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "presence_penalty": { + "model_name": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, + "value": "gpt-3.5-turbo-0613", "password": false, - "name": "presence_penalty", + "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, - "type": "float", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, "n": { "required": false, @@ -244,30 +328,23 @@ "password": false, "name": "n", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "best_of": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 1, - "password": false, - "name": "best_of", - "advanced": false, - "type": "int", - "list": false - }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -280,22 +357,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -305,6 +371,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -317,21 +385,11 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "batch_size": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 20, - "password": false, - "name": "batch_size", - "advanced": false, - "type": "int", - "list": false - }, "request_timeout": { "required": false, "placeholder": "", @@ -340,191 +398,201 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", "list": false }, - "logit_bias": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": false, "password": false, - "name": "logit_bias", + "name": "streaming", "advanced": false, - "type": "code", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "max_retries": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, "password": false, - "name": "max_retries", + "name": "tags", "advanced": false, - "type": "int", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, - "streaming": { + "temperature": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": false, + "value": 0.7, "password": false, - "name": "streaming", + "name": "temperature", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "float", "list": false }, - "allowed_special": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": [], "password": false, - "name": "allowed_special", + "name": "tiktoken_model_name", "advanced": false, - "type": "Literal'all'", - "list": true + "dynamic": false, + "info": "", + "type": "str", + "list": false }, - "disallowed_special": { + "verbose": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": "all", + "value": false, "password": false, - "name": "disallowed_special", + "name": "verbose", "advanced": false, - "type": "Literal'all'", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "_type": "OpenAI" + "_type": "ChatOpenAI" }, - "description": "Generic OpenAI class that uses model name.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ - "BaseLLM", + "ChatOpenAI", "BaseLanguageModel", - "OpenAI", - "BaseOpenAI" - ] + "BaseChatModel", + "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": "dndnode_17", - "value": null + "id": "ChatOpenAI-v911K" }, - "selected": false, + "selected": true, "positionAbsolute": { - "x": 664.5046837368179, - "y": 351.4165918614485 + "x": 1186.0375506003627, + "y": -702.2683578406986 }, "dragging": false - }, + } + ], + "edges": [ { - "width": 384, - "height": 323, - "id": "dndnode_126653ac-f17f-4266-8b19-510eed024b17", - "type": "genericNode", - "position": { - "x": 644.1239078947345, - "y": -74.06644565448788 - }, + "source": "JsonSpec-MahH4", + "sourceHandle": "{œbaseClassesœ:[œToolœ,œBaseToolœ,œJsonSpecœ],œdataTypeœ:œJsonSpecœ,œidœ:œJsonSpec-MahH4œ}", + "target": "JsonToolkit-xGIbb", + "targetHandle": "{œfieldNameœ:œspecœ,œidœ:œJsonToolkit-xGIbbœ,œinputTypesœ:null,œtypeœ:œJsonSpecœ}", "data": { - "type": "JsonSpec", - "node": { - "template": { - "max_value_length": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "", - "password": false, - "name": "max_value_length", - "advanced": false, - "type": "int", - "list": false - }, - "path": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "", - "suffixes": [ - ".json", - ".yaml", - ".yml" - ], - "password": false, - "name": "path", - "advanced": false, - "type": "file", - "list": false, - "fileTypes": [ - "json", - "yaml", - "yml" - ], - "content": null - }, - "_type": "JsonSpec" - }, - "description": "", - "base_classes": [ + "targetHandle": { + "fieldName": "spec", + "id": "JsonToolkit-xGIbb", + "inputTypes": null, + "type": "JsonSpec" + }, + "sourceHandle": { + "baseClasses": [ "Tool", + "BaseTool", "JsonSpec" - ] - }, - "id": "dndnode_126653ac-f17f-4266-8b19-510eed024b17", - "value": null + ], + "dataType": "JsonSpec", + "id": "JsonSpec-MahH4" + } }, - "selected": false, - "positionAbsolute": { - "x": 644.1239078947345, - "y": -74.06644565448788 + "style": { + "stroke": "#555" }, - "dragging": false - } - ], - "edges": [ - { - "source": "dndnode_13", - "sourceHandle": "JsonToolkit|dndnode_13|BaseToolkit|JsonToolkit", - "target": "dndnode_15", - "targetHandle": "BaseToolkit|toolkit|dndnode_15", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_13JsonToolkit|dndnode_13|BaseToolkit|JsonToolkit-dndnode_15BaseToolkit|toolkit|dndnode_15", - "selected": false + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-JsonSpec-MahH4{œbaseClassesœ:[œToolœ,œBaseToolœ,œJsonSpecœ],œdataTypeœ:œJsonSpecœ,œidœ:œJsonSpec-MahH4œ}-JsonToolkit-xGIbb{œfieldNameœ:œspecœ,œidœ:œJsonToolkit-xGIbbœ,œinputTypesœ:null,œtypeœ:œJsonSpecœ}" }, { - "source": "dndnode_17", - "sourceHandle": "OpenAI|dndnode_17|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI", - "target": "dndnode_15", - "targetHandle": "BaseLanguageModel|llm|dndnode_15", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_17OpenAI|dndnode_17|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI-dndnode_15BaseLanguageModel|llm|dndnode_15", - "selected": false + "source": "JsonToolkit-xGIbb", + "sourceHandle": "{œbaseClassesœ:[œBaseToolkitœ,œJsonToolkitœ,œToolœ],œdataTypeœ:œJsonToolkitœ,œidœ:œJsonToolkit-xGIbbœ}", + "target": "JsonAgent-XYfTc", + "targetHandle": "{œfieldNameœ:œtoolkitœ,œidœ:œJsonAgent-XYfTcœ,œinputTypesœ:null,œtypeœ:œBaseToolkitœ}", + "data": { + "targetHandle": { + "fieldName": "toolkit", + "id": "JsonAgent-XYfTc", + "inputTypes": null, + "type": "BaseToolkit" + }, + "sourceHandle": { + "baseClasses": [ + "BaseToolkit", + "JsonToolkit", + "Tool" + ], + "dataType": "JsonToolkit", + "id": "JsonToolkit-xGIbb" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-JsonToolkit-xGIbb{œbaseClassesœ:[œBaseToolkitœ,œJsonToolkitœ,œToolœ],œdataTypeœ:œJsonToolkitœ,œidœ:œJsonToolkit-xGIbbœ}-JsonAgent-XYfTc{œfieldNameœ:œtoolkitœ,œidœ:œJsonAgent-XYfTcœ,œinputTypesœ:null,œtypeœ:œBaseToolkitœ}" }, { - "source": "dndnode_126653ac-f17f-4266-8b19-510eed024b17", - "sourceHandle": "JsonSpec|dndnode_126653ac-f17f-4266-8b19-510eed024b17|Tool|JsonSpec", - "target": "dndnode_13", - "targetHandle": "JsonSpec|spec|dndnode_13", + "source": "ChatOpenAI-v911K", + "sourceHandle": "{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-v911Kœ}", + "target": "JsonAgent-XYfTc", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œJsonAgent-XYfTcœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "JsonAgent-XYfTc", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "ChatOpenAI", + "BaseLanguageModel", + "BaseChatModel", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-v911K" + } + }, "style": { - "stroke": "#222222" + "stroke": "#555" }, + "className": "stroke-foreground stroke-connection", "animated": false, - "id": "reactflow__edge-dndnode_126653ac-f17f-4266-8b19-510eed024b17JsonSpec|dndnode_126653ac-f17f-4266-8b19-510eed024b17|Tool|JsonSpec-dndnode_13JsonSpec|spec|dndnode_13", - "selected": false + "id": "reactflow__edge-ChatOpenAI-v911K{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-v911Kœ}-JsonAgent-XYfTc{œfieldNameœ:œllmœ,œidœ:œJsonAgent-XYfTcœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" } ], "viewport": { - "x": -258.1938704405271, - "y": 118.65185298284183, - "zoom": 0.697371833175204 + "x": -236.26204703754217, + "y": 623.6686989603851, + "zoom": 0.5727154647790916 } - } + }, + "description": "Query an API spec to get information about the endpoints, parameters, and responses.", + "name": "JSON Agent" } \ No newline at end of file diff --git a/examples/MidJourney Prompt Chain.json b/examples/MidJourney Prompt Chain.json index 362ae2f..cdb75da 100644 --- a/examples/MidJourney Prompt Chain.json +++ b/examples/MidJourney Prompt Chain.json @@ -1,17 +1,15 @@ { - "description": "Helps you generate a prompt based on your input to use in the MidJourney AI.", - "name": "MidJourney Prompt Chain", - "id": "9f2c3aef-a2f4-4fc6-8954-45f594ae64ee", + "id": "305f354a-235b-4180-a8dd-af812695cba6", "data": { "nodes": [ { "width": 384, - "height": 287, - "id": "dndnode_28", + "height": 311, + "id": "MidJourneyPromptChain-osJWT", "type": "genericNode", "position": { - "x": 1434.3856064919105, - "y": 417.72471641888757 + "x": 1692.562866083456, + "y": 1163.7801284808359 }, "data": { "type": "MidJourneyPromptChain", @@ -26,6 +24,8 @@ "name": "llm", "display_name": "LLM", "advanced": false, + "dynamic": false, + "info": "", "type": "BaseLanguageModel", "list": false }, @@ -37,87 +37,76 @@ "password": false, "name": "memory", "advanced": false, + "dynamic": false, + "info": "", "type": "BaseChatMemory", - "list": false, - "value": { - "chat_memory": { - "messages": [] - }, - "output_key": null, - "input_key": null, - "return_messages": false, - "human_prefix": "Human", - "ai_prefix": "AI", - "memory_key": "history" - } + "list": false }, "_type": "MidJourneyPromptChain" }, "description": "MidJourneyPromptChain is a chain you can use to generate new MidJourney prompts.", "base_classes": [ "LLMChain", - "ConversationChain", - "Chain", "BaseCustomChain", + "Chain", + "ConversationChain", "MidJourneyPromptChain" - ] + ], + "display_name": "MidJourneyPromptChain", + "custom_fields": {}, + "output_types": [], + "documentation": "", + "beta": false, + "error": null }, - "id": "dndnode_28", - "value": null + "id": "MidJourneyPromptChain-osJWT" }, "selected": false, "positionAbsolute": { - "x": 1434.3856064919105, - "y": 417.72471641888757 + "x": 1692.562866083456, + "y": 1163.7801284808359 }, "dragging": false }, { "width": 384, - "height": 597, - "id": "dndnode_29", + "height": 629, + "id": "ChatOpenAI-FLxvN", "type": "genericNode", "position": { - "x": 472.1073740469533, - "y": 204.4345032163925 + "x": 1099.019262507026, + "y": 754.7961031309071 }, "data": { - "type": "OpenAI", + "type": "ChatOpenAI", "node": { "template": { - "cache": { + "callbacks": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "cache", + "name": "callbacks", "advanced": false, - "type": "bool", - "list": false + "dynamic": false, + "info": "", + "type": "langchain.callbacks.base.BaseCallbackHandler", + "list": true }, - "verbose": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "verbose", + "name": "cache", "advanced": false, + "dynamic": false, + "info": "", "type": "bool", "list": false }, - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, "client": { "required": false, "placeholder": "", @@ -126,38 +115,23 @@ "password": false, "name": "client", "advanced": false, + "dynamic": false, + "info": "", "type": "Any", "list": false }, - "model_name": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": "text-davinci-003", - "password": false, - "options": [ - "text-davinci-003", - "text-davinci-002", - "text-curie-001", - "text-babbage-001", - "text-ada-001" - ], - "name": "model_name", - "advanced": false, - "type": "str", - "list": true - }, - "temperature": { + "max_retries": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 6, "password": false, - "name": "temperature", + "name": "max_retries", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, "max_tokens": { @@ -165,48 +139,63 @@ "placeholder": "", "show": true, "multiline": false, - "value": 256, "password": true, "name": "max_tokens", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "top_p": { + "metadata": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "top_p", + "name": "metadata", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "frequency_penalty": { + "model_kwargs": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, "password": false, - "name": "frequency_penalty", - "advanced": false, - "type": "float", + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "presence_penalty": { + "model_name": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, + "value": "gpt-3.5-turbo-0613", "password": false, - "name": "presence_penalty", + "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, - "type": "float", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, "n": { "required": false, @@ -217,30 +206,23 @@ "password": false, "name": "n", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "best_of": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 1, - "password": false, - "name": "best_of", - "advanced": false, - "type": "int", - "list": false - }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -253,22 +235,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -278,6 +249,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -290,21 +263,11 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "batch_size": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 20, - "password": false, - "name": "batch_size", - "advanced": false, - "type": "int", - "list": false - }, "request_timeout": { "required": false, "placeholder": "", @@ -313,111 +276,128 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", "list": false }, - "logit_bias": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": false, "password": false, - "name": "logit_bias", + "name": "streaming", "advanced": false, - "type": "code", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "max_retries": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, "password": false, - "name": "max_retries", + "name": "tags", "advanced": false, - "type": "int", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, - "streaming": { + "temperature": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": false, + "value": 0.7, "password": false, - "name": "streaming", + "name": "temperature", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "float", "list": false }, - "allowed_special": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": [], "password": false, - "name": "allowed_special", + "name": "tiktoken_model_name", "advanced": false, - "type": "Literal'all'", - "list": true + "dynamic": false, + "info": "", + "type": "str", + "list": false }, - "disallowed_special": { + "verbose": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": "all", + "value": false, "password": false, - "name": "disallowed_special", + "name": "verbose", "advanced": false, - "type": "Literal'all'", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "_type": "OpenAI" + "_type": "ChatOpenAI" }, - "description": "Generic OpenAI class that uses model name.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ - "BaseLLM", + "ChatOpenAI", "BaseLanguageModel", - "OpenAI", - "BaseOpenAI" - ] + "BaseChatModel", + "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": "dndnode_29", - "value": null + "id": "ChatOpenAI-FLxvN" }, "selected": false, "positionAbsolute": { - "x": 472.1073740469533, - "y": 204.4345032163925 + "x": 1099.019262507026, + "y": 754.7961031309071 }, "dragging": false }, { "width": 384, - "height": 313, - "id": "dndnode_ae42694e-8558-49d7-be41-6482559c292a", + "height": 577, + "id": "ConversationBufferMemory-flsTi", "type": "genericNode", "position": { - "x": 970.4079759700535, - "y": 202.85762988089095 + "x": 1099.0192625070256, + "y": 1422.1635379979389 }, "data": { - "type": "ConversationSummaryMemory", + "type": "ConversationBufferMemory", "node": { "template": { - "human_prefix": { + "chat_memory": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "Human", "password": false, - "name": "human_prefix", + "name": "chat_memory", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "BaseChatMessageHistory", "list": false }, "ai_prefix": { @@ -429,169 +409,174 @@ "password": false, "name": "ai_prefix", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "llm", - "advanced": false, - "type": "BaseLanguageModel", - "list": false - }, - "prompt": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "prompt", - "advanced": false, - "type": "BasePromptTemplate", - "list": false - }, - "summary_message_cls": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "summary_message_cls", - "advanced": false, - "type": "Type[langchain.schema.BaseMessage]", - "list": false - }, - "chat_memory": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "chat_memory", - "advanced": false, - "type": "BaseChatMessageHistory", - "list": false - }, - "output_key": { + "human_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": "Human", "password": false, - "name": "output_key", + "name": "human_prefix", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, "input_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, + "value": "", "password": false, "name": "input_key", "advanced": false, + "dynamic": false, + "info": "The variable to be used as Chat Input when more than one variable is available.", "type": "str", "list": false }, - "return_messages": { + "memory_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, + "value": "history", "password": false, - "name": "return_messages", + "name": "memory_key", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "buffer": { + "output_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, "value": "", "password": false, - "name": "buffer", + "name": "output_key", "advanced": false, + "dynamic": false, + "info": "The variable to be used as Chat Output (e.g. answer in a ConversationalRetrievalChain)", "type": "str", "list": false }, - "memory_key": { + "return_messages": { "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "history", "password": false, - "name": "memory_key", + "name": "return_messages", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "_type": "ConversationSummaryMemory" + "_type": "ConversationBufferMemory" }, - "description": "Conversation summarizer to memory.", + "description": "Buffer for storing conversation memory.", "base_classes": [ - "SummarizerMixin", - "BaseMemory", "BaseChatMemory", - "ConversationSummaryMemory" - ] + "ConversationBufferMemory", + "BaseMemory" + ], + "display_name": "ConversationBufferMemory", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/memory/how_to/buffer", + "beta": false, + "error": null }, - "id": "dndnode_ae42694e-8558-49d7-be41-6482559c292a", - "value": null + "id": "ConversationBufferMemory-flsTi" }, "selected": false, "positionAbsolute": { - "x": 970.4079759700535, - "y": 202.85762988089095 + "x": 1099.0192625070256, + "y": 1422.1635379979389 }, "dragging": false } ], "edges": [ { - "source": "dndnode_29", - "sourceHandle": "OpenAI|dndnode_29|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI", - "target": "dndnode_28", - "targetHandle": "BaseLanguageModel|llm|dndnode_28", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_29OpenAI|dndnode_29|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI-dndnode_28BaseLanguageModel|llm|dndnode_28", - "selected": false - }, - { - "source": "dndnode_29", - "sourceHandle": "OpenAI|dndnode_29|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI", - "target": "dndnode_ae42694e-8558-49d7-be41-6482559c292a", - "targetHandle": "BaseLanguageModel|llm|dndnode_ae42694e-8558-49d7-be41-6482559c292a", + "source": "ChatOpenAI-FLxvN", + "target": "MidJourneyPromptChain-osJWT", + "sourceHandle": "{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-FLxvNœ}", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œMidJourneyPromptChain-osJWTœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "id": "reactflow__edge-ChatOpenAI-FLxvN{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-FLxvNœ}-MidJourneyPromptChain-osJWT{œfieldNameœ:œllmœ,œidœ:œMidJourneyPromptChain-osJWTœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "MidJourneyPromptChain-osJWT", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "ChatOpenAI", + "BaseLanguageModel", + "BaseChatModel", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-FLxvN" + } + }, "style": { - "stroke": "#222222" + "stroke": "#555" }, + "className": "stroke-gray-900 ", "animated": false, - "id": "reactflow__edge-dndnode_29OpenAI|dndnode_29|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI-dndnode_ae42694e-8558-49d7-be41-6482559c292aBaseLanguageModel|llm|dndnode_ae42694e-8558-49d7-be41-6482559c292a", "selected": false }, { - "source": "dndnode_ae42694e-8558-49d7-be41-6482559c292a", - "sourceHandle": "ConversationSummaryMemory|dndnode_ae42694e-8558-49d7-be41-6482559c292a|SummarizerMixin|BaseMemory|BaseChatMemory|ConversationSummaryMemory", - "target": "dndnode_28", - "targetHandle": "BaseChatMemory|memory|dndnode_28", + "source": "ConversationBufferMemory-flsTi", + "target": "MidJourneyPromptChain-osJWT", + "sourceHandle": "{œbaseClassesœ:[œBaseChatMemoryœ,œConversationBufferMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-flsTiœ}", + "targetHandle": "{œfieldNameœ:œmemoryœ,œidœ:œMidJourneyPromptChain-osJWTœ,œinputTypesœ:null,œtypeœ:œBaseChatMemoryœ}", + "id": "reactflow__edge-ConversationBufferMemory-flsTi{œbaseClassesœ:[œBaseChatMemoryœ,œConversationBufferMemoryœ,œBaseMemoryœ],œdataTypeœ:œConversationBufferMemoryœ,œidœ:œConversationBufferMemory-flsTiœ}-MidJourneyPromptChain-osJWT{œfieldNameœ:œmemoryœ,œidœ:œMidJourneyPromptChain-osJWTœ,œinputTypesœ:null,œtypeœ:œBaseChatMemoryœ}", + "data": { + "targetHandle": { + "fieldName": "memory", + "id": "MidJourneyPromptChain-osJWT", + "inputTypes": null, + "type": "BaseChatMemory" + }, + "sourceHandle": { + "baseClasses": [ + "BaseChatMemory", + "ConversationBufferMemory", + "BaseMemory" + ], + "dataType": "ConversationBufferMemory", + "id": "ConversationBufferMemory-flsTi" + } + }, "style": { - "stroke": "#222222" + "stroke": "#555" }, + "className": "stroke-gray-900 ", "animated": false, - "id": "reactflow__edge-dndnode_ae42694e-8558-49d7-be41-6482559c292aConversationSummaryMemory|dndnode_ae42694e-8558-49d7-be41-6482559c292a|SummarizerMixin|BaseMemory|BaseChatMemory|ConversationSummaryMemory-dndnode_28BaseChatMemory|memory|dndnode_28" + "selected": false } ], "viewport": { - "x": -150.21929209374377, - "y": -40.071721754091925, - "zoom": 0.8235910172675737 + "x": -515.8301503324635, + "y": -402.7740588945129, + "zoom": 0.6061898002860291 } - } + }, + "description": "Helps you generate a prompt based on your input to use in the MidJourney AI.", + "name": "MidJourney Prompt Chain" } \ No newline at end of file diff --git a/examples/Series Character.json b/examples/Series Character.json index cb1eccf..cd8aff2 100644 --- a/examples/Series Character.json +++ b/examples/Series Character.json @@ -1,44 +1,102 @@ { - "description": "Talk to a Character from a Series", - "name": "Series Character", - "id": "f4806345-33e1-4926-b30e-a80bac169a56", + "id": "da82dd71-461e-4930-8931-77a79b569be4", "data": { "nodes": [ { "width": 384, - "height": 597, - "id": "dndnode_32", + "height": 435, + "id": "SeriesCharacterChain-uNHjV", "type": "genericNode", "position": { - "x": -109.87265436187772, - "y": -344.53540310479445 + "x": 573.1088666731008, + "y": -225.80980237816195 }, "data": { - "type": "OpenAI", + "type": "SeriesCharacterChain", "node": { "template": { - "cache": { - "required": false, + "llm": { + "required": true, "placeholder": "", - "show": false, + "show": true, "multiline": false, "password": false, - "name": "cache", + "name": "llm", + "display_name": "LLM", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", "list": false }, - "verbose": { - "required": false, + "character": { + "required": true, "placeholder": "", - "show": false, + "show": true, "multiline": false, "password": false, - "name": "verbose", + "name": "character", "advanced": false, - "type": "bool", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "SpongeBob" }, + "series": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "series", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false, + "value": "SpongeBob" + }, + "_type": "SeriesCharacterChain" + }, + "description": "SeriesCharacterChain is a chain you can use to have a conversation with a character from a series.", + "base_classes": [ + "LLMChain", + "BaseCustomChain", + "Chain", + "ConversationChain", + "SeriesCharacterChain", + "Callable" + ], + "display_name": "SeriesCharacterChain", + "custom_fields": {}, + "output_types": [], + "documentation": "", + "beta": false, + "error": null + }, + "id": "SeriesCharacterChain-uNHjV" + }, + "positionAbsolute": { + "x": 573.1088666731008, + "y": -225.80980237816195 + }, + "selected": false, + "dragging": false + }, + { + "width": 384, + "height": 629, + "id": "ChatOpenAI-bMmDv", + "type": "genericNode", + "position": { + "x": -36.93715359111093, + "y": -551.0708252623556 + }, + "data": { + "type": "ChatOpenAI", + "node": { + "template": { "callbacks": { "required": false, "placeholder": "", @@ -47,49 +105,49 @@ "password": false, "name": "callbacks", "advanced": false, + "dynamic": false, + "info": "", "type": "langchain.callbacks.base.BaseCallbackHandler", "list": true }, - "client": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "client", + "name": "cache", "advanced": false, - "type": "Any", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "model_name": { + "client": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": "text-davinci-003", "password": false, - "options": [ - "text-davinci-003", - "text-davinci-002", - "text-curie-001", - "text-babbage-001", - "text-ada-001" - ], - "name": "model_name", + "name": "client", "advanced": false, - "type": "str", - "list": true + "dynamic": false, + "info": "", + "type": "Any", + "list": false }, - "temperature": { + "max_retries": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": 0.7, + "value": 6, "password": false, - "name": "temperature", + "name": "max_retries", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "int", "list": false }, "max_tokens": { @@ -97,48 +155,63 @@ "placeholder": "", "show": true, "multiline": false, - "value": 256, "password": true, "name": "max_tokens", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "top_p": { + "metadata": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, "password": false, - "name": "top_p", + "name": "metadata", "advanced": false, - "type": "float", + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "frequency_penalty": { + "model_kwargs": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, "password": false, - "name": "frequency_penalty", - "advanced": false, - "type": "float", + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "presence_penalty": { + "model_name": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": 0, + "value": "gpt-3.5-turbo-0613", "password": false, - "name": "presence_penalty", + "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, - "type": "float", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, "n": { "required": false, @@ -149,30 +222,23 @@ "password": false, "name": "n", "advanced": false, + "dynamic": false, + "info": "", "type": "int", "list": false }, - "best_of": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 1, - "password": false, - "name": "best_of", - "advanced": false, - "type": "int", - "list": false - }, - "model_kwargs": { + "openai_api_base": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "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": { @@ -185,22 +251,11 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "openai_api_base": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, "openai_organization": { "required": false, "placeholder": "", @@ -210,6 +265,8 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, @@ -222,21 +279,11 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "batch_size": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "value": 20, - "password": false, - "name": "batch_size", - "advanced": false, - "type": "int", - "list": false - }, "request_timeout": { "required": false, "placeholder": "", @@ -245,174 +292,143 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, + "info": "", "type": "float", "list": false }, - "logit_bias": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": false, "password": false, - "name": "logit_bias", + "name": "streaming", "advanced": false, - "type": "code", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "max_retries": { + "tags": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, "password": false, - "name": "max_retries", + "name": "tags", "advanced": false, - "type": "int", - "list": false + "dynamic": false, + "info": "", + "type": "str", + "list": true }, - "streaming": { + "temperature": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": false, + "value": 0.7, "password": false, - "name": "streaming", + "name": "temperature", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "float", "list": false }, - "allowed_special": { + "tiktoken_model_name": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": [], "password": false, - "name": "allowed_special", + "name": "tiktoken_model_name", "advanced": false, - "type": "Literal'all'", - "list": true + "dynamic": false, + "info": "", + "type": "str", + "list": false }, - "disallowed_special": { + "verbose": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": "all", + "value": false, "password": false, - "name": "disallowed_special", + "name": "verbose", "advanced": false, - "type": "Literal'all'", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "_type": "OpenAI" + "_type": "ChatOpenAI" }, - "description": "Generic OpenAI class that uses model name.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ - "BaseOpenAI", - "OpenAI", + "ChatOpenAI", "BaseLanguageModel", + "BaseChatModel", "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": "dndnode_32", - "value": null + "id": "ChatOpenAI-bMmDv" }, "selected": false, "positionAbsolute": { - "x": -109.87265436187772, - "y": -344.53540310479445 + "x": -36.93715359111093, + "y": -551.0708252623556 }, "dragging": false - }, + } + ], + "edges": [ { - "width": 384, - "height": 419, - "id": "dndnode_39", - "type": "genericNode", - "position": { - "x": 537.5705916932063, - "y": -223.79480207470036 - }, + "source": "ChatOpenAI-bMmDv", + "sourceHandle": "{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-bMmDvœ}", + "target": "SeriesCharacterChain-uNHjV", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œSeriesCharacterChain-uNHjVœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", "data": { - "type": "SeriesCharacterChain", - "node": { - "template": { - "character": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "character", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, - "series": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "series", - "advanced": false, - "type": "str", - "list": false, - "value": "" - }, - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "llm", - "display_name": "LLM", - "advanced": false, - "type": "BaseLanguageModel", - "list": false - }, - "_type": "SeriesCharacterChain" - }, - "description": "SeriesCharacterChain is a chain you can use to have a conversation with a character from a series.", - "base_classes": [ - "Chain", - "BaseCustomChain", - "LLMChain", - "ConversationChain", - "SeriesCharacterChain" - ] + "targetHandle": { + "fieldName": "llm", + "id": "SeriesCharacterChain-uNHjV", + "inputTypes": null, + "type": "BaseLanguageModel" }, - "id": "dndnode_39", - "value": null + "sourceHandle": { + "baseClasses": [ + "ChatOpenAI", + "BaseLanguageModel", + "BaseChatModel", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-bMmDv" + } }, - "selected": false, - "positionAbsolute": { - "x": 537.5705916932063, - "y": -223.79480207470036 + "style": { + "stroke": "#555" }, - "dragging": false - } - ], - "edges": [ - { - "source": "dndnode_32", - "sourceHandle": "OpenAI|dndnode_32|BaseOpenAI|OpenAI|BaseLanguageModel|BaseLLM", - "target": "dndnode_39", - "targetHandle": "BaseLanguageModel|llm|dndnode_39", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_32OpenAI|dndnode_32|BaseOpenAI|OpenAI|BaseLanguageModel|BaseLLM-dndnode_39BaseLanguageModel|llm|dndnode_39", - "selected": false + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-bMmDv{œbaseClassesœ:[œChatOpenAIœ,œBaseLanguageModelœ,œBaseChatModelœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-bMmDvœ}-SeriesCharacterChain-uNHjV{œfieldNameœ:œllmœ,œidœ:œSeriesCharacterChain-uNHjVœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" } ], "viewport": { - "x": 302.92537281970607, - "y": 429.7239204719036, - "zoom": 0.6973718331752029 + "x": 214.90492374238676, + "y": 439.94811609037725, + "zoom": 0.7013243096409267 } - } + }, + "description": "Talk to a Character from a Series", + "name": "Series Character" } \ No newline at end of file diff --git a/examples/Summary Memory.json b/examples/Summary Memory.json index e8da729..e20c7cb 100644 --- a/examples/Summary Memory.json +++ b/examples/Summary Memory.json @@ -1,228 +1,244 @@ { - "description": "A Chain that uses a ConversationSummaryMemory", - "name": "Summary Memory", - "id": "379cc759-6341-461d-b050-929c2dcd36f4", + "id": "f63a1a00-572e-4177-8698-62d79d32fda9", "data": { "nodes": [ { "width": 384, - "height": 313, - "id": "dndnode_1", + "height": 629, + "id": "ChatOpenAI-X2D9z", "type": "genericNode", "position": { - "x": 1118.1130602083322, - "y": 280.37761107143024 + "x": 575.7880403162437, + "y": 564.5124734999723 }, "data": { - "type": "ConversationSummaryMemory", + "type": "ChatOpenAI", "node": { "template": { - "human_prefix": { + "callbacks": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": "Human", "password": false, - "name": "human_prefix", + "name": "callbacks", "advanced": false, - "type": "str", - "list": false + "dynamic": false, + "info": "", + "type": "langchain.callbacks.base.BaseCallbackHandler", + "list": true }, - "ai_prefix": { + "cache": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": "AI", "password": false, - "name": "ai_prefix", + "name": "cache", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "llm": { - "required": true, + "client": { + "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, "password": false, - "name": "llm", + "name": "client", "advanced": false, - "type": "BaseLanguageModel", + "dynamic": false, + "info": "", + "type": "Any", "list": false }, - "prompt": { + "max_retries": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": 6, "password": false, - "name": "prompt", + "name": "max_retries", "advanced": false, - "type": "BasePromptTemplate", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "summary_message_cls": { + "max_tokens": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "password": false, - "name": "summary_message_cls", + "password": true, + "name": "max_tokens", "advanced": false, - "type": "Type[langchain.schema.BaseMessage]", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "chat_memory": { + "metadata": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "chat_memory", + "name": "metadata", "advanced": false, - "type": "BaseChatMessageHistory", + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "output_key": { + "model_kwargs": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, "password": false, - "name": "output_key", - "advanced": false, - "type": "str", + "name": "model_kwargs", + "advanced": true, + "dynamic": false, + "info": "", + "type": "dict", "list": false }, - "input_key": { + "model_name": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, + "value": "gpt-3.5-turbo-0613", "password": false, - "name": "input_key", + "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": false + "list": true }, - "return_messages": { + "n": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": 1, "password": false, - "name": "return_messages", + "name": "n", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "int", "list": false }, - "buffer": { + "openai_api_base": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, - "value": "", "password": false, - "name": "buffer", + "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 }, - "memory_key": { + "openai_api_key": { "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "history", + "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": "memory_key", + "name": "openai_organization", + "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": false }, - "_type": "ConversationSummaryMemory" - }, - "description": "Conversation summarizer to memory.", - "base_classes": [ - "ConversationSummaryMemory", - "BaseChatMemory", - "SummarizerMixin", - "BaseMemory" - ] - }, - "id": "dndnode_1", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 1118.1130602083322, - "y": 280.37761107143024 - }, - "dragging": false - }, - { - "width": 384, - "height": 597, - "id": "dndnode_2", - "type": "genericNode", - "position": { - "x": 593.8365713553318, - "y": 483.01522765803907 - }, - "data": { - "type": "ChatOpenAI", - "node": { - "template": { - "verbose": { + "openai_proxy": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, "password": false, - "name": "verbose", + "name": "openai_proxy", + "display_name": "OpenAI Proxy", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "callbacks": { + "request_timeout": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "callbacks", + "name": "request_timeout", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true + "dynamic": false, + "info": "", + "type": "float", + "list": false }, - "client": { + "streaming": { "required": false, "placeholder": "", "show": false, "multiline": false, + "value": false, "password": false, - "name": "client", + "name": "streaming", "advanced": false, - "type": "Any", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "model_name": { + "tags": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": "gpt-3.5-turbo", "password": false, - "options": [ - "gpt-3.5-turbo", - "gpt-4", - "gpt-4-32k" - ], - "name": "model_name", + "name": "tags", "advanced": false, + "dynamic": false, + "info": "", "type": "str", "list": true }, @@ -235,217 +251,275 @@ "password": false, "name": "temperature", "advanced": false, + "dynamic": false, + "info": "", "type": "float", "list": false }, - "model_kwargs": { + "tiktoken_model_name": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, "password": false, - "name": "model_kwargs", - "advanced": true, - "type": "code", + "name": "tiktoken_model_name", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "openai_api_key": { + "verbose": { "required": false, "placeholder": "", - "show": true, + "show": false, "multiline": false, - "value": "", - "password": true, - "name": "openai_api_key", - "display_name": "OpenAI API Key", + "value": false, + "password": false, + "name": "verbose", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "bool", "list": false }, - "openai_api_base": { + "_type": "ChatOpenAI" + }, + "description": "`OpenAI` Chat large language models API.", + "base_classes": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "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-X2D9z" + }, + "positionAbsolute": { + "x": 575.7880403162437, + "y": 564.5124734999723 + } + }, + { + "width": 384, + "height": 625, + "id": "ConversationSummaryMemory-5dYIh", + "type": "genericNode", + "position": { + "x": 1108.5759996110821, + "y": 1240.7354794303983 + }, + "data": { + "type": "ConversationSummaryMemory", + "node": { + "template": { + "chat_memory": { "required": false, "placeholder": "", "show": true, "multiline": false, - "password": true, - "name": "openai_api_base", - "display_name": "OpenAI API Base", + "password": false, + "name": "chat_memory", "advanced": false, - "type": "str", - "list": false, - "value": "" + "dynamic": false, + "info": "", + "type": "BaseChatMessageHistory", + "list": false }, - "openai_organization": { - "required": false, + "llm": { + "required": true, "placeholder": "", - "show": false, + "show": true, "multiline": false, "password": false, - "name": "openai_organization", - "display_name": "OpenAI Organization", + "name": "llm", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", "list": false }, - "openai_proxy": { + "prompt": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "openai_proxy", - "display_name": "OpenAI Proxy", + "name": "prompt", "advanced": false, - "type": "str", + "dynamic": false, + "info": "", + "type": "BasePromptTemplate", "list": false }, - "request_timeout": { + "summary_message_cls": { "required": false, "placeholder": "", "show": false, "multiline": false, "password": false, - "name": "request_timeout", + "name": "summary_message_cls", "advanced": false, - "type": "float", - "list": false, - "value": 60 + "dynamic": false, + "info": "", + "type": "Type[langchain.schema.messages.BaseMessage]", + "list": false }, - "max_retries": { + "ai_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 6, + "value": "AI", "password": false, - "name": "max_retries", + "name": "ai_prefix", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "streaming": { + "buffer": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": false, + "value": "", "password": false, - "name": "streaming", + "name": "buffer", "advanced": false, - "type": "bool", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "n": { + "human_prefix": { "required": false, "placeholder": "", "show": false, "multiline": false, - "value": 1, + "value": "Human", "password": false, - "name": "n", + "name": "human_prefix", "advanced": false, - "type": "int", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "max_tokens": { + "input_key": { "required": false, "placeholder": "", "show": true, "multiline": false, - "password": true, - "name": "max_tokens", + "value": "", + "password": false, + "name": "input_key", "advanced": false, - "type": "int", + "dynamic": false, + "info": "The variable to be used as Chat Input when more than one variable is available.", + "type": "str", "list": false }, - "_type": "ChatOpenAI" - }, - "description": "Wrapper around OpenAI Chat large language models.", - "base_classes": [ - "BaseLanguageModel", - "ChatOpenAI", - "BaseChatModel" - ] - }, - "id": "dndnode_2", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 593.8365713553318, - "y": 483.01522765803907 - }, - "dragging": false - }, - { - "width": 384, - "height": 287, - "id": "dndnode_3", - "type": "genericNode", - "position": { - "x": 1591.8694239743472, - "y": 665.1275441560489 - }, - "data": { - "type": "ConversationChain", - "node": { - "template": { - "memory": { + "memory_key": { "required": false, "placeholder": "", "show": true, "multiline": false, + "value": "history", "password": false, - "name": "memory", + "name": "memory_key", "advanced": false, - "type": "BaseMemory", + "dynamic": false, + "info": "", + "type": "str", "list": false }, - "callbacks": { + "output_key": { "required": false, "placeholder": "", - "show": false, + "show": true, "multiline": false, + "value": "", "password": false, - "name": "callbacks", + "name": "output_key", "advanced": false, - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true + "dynamic": false, + "info": "The variable to be used as Chat Output (e.g. answer in a ConversationalRetrievalChain)", + "type": "str", + "list": false }, - "verbose": { + "return_messages": { "required": false, "placeholder": "", "show": true, "multiline": false, "password": false, - "name": "verbose", - "advanced": true, + "name": "return_messages", + "advanced": false, + "dynamic": false, + "info": "", "type": "bool", "list": false }, - "prompt": { - "required": false, + "_type": "ConversationSummaryMemory" + }, + "description": "Conversation summarizer to chat memory.", + "base_classes": [ + "BaseChatMemory", + "ConversationSummaryMemory", + "BaseMemory", + "SummarizerMixin" + ], + "display_name": "ConversationSummaryMemory", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/memory/how_to/summary", + "beta": false, + "error": null + }, + "id": "ConversationSummaryMemory-5dYIh" + }, + "selected": true, + "positionAbsolute": { + "x": 1108.5759996110821, + "y": 1240.7354794303983 + }, + "dragging": false + }, + { + "width": 384, + "height": 311, + "id": "ConversationChain-VaJuX", + "type": "genericNode", + "position": { + "x": 1628.5027738727983, + "y": 873.3819005330587 + }, + "data": { + "type": "ConversationChain", + "node": { + "template": { + "code": { + "dynamic": true, + "required": true, "placeholder": "", "show": false, - "multiline": false, - "value": { - "input_variables": [ - "history", - "input" - ], - "output_parser": null, - "partial_variables": {}, - "template": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:", - "template_format": "f-string", - "validate_template": true, - "_type": "prompt" - }, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import ConversationChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import BaseLanguageModel, BaseMemory, Chain\n\n\nclass ConversationChainComponent(CustomComponent):\n display_name = \"ConversationChain\"\n description = \"Chain to have a conversation and load context from memory.\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\n \"display_name\": \"Memory\",\n \"info\": \"Memory to load context from. If none is provided, a ConversationBufferMemory will be used.\",\n },\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n if memory is None:\n return ConversationChain(llm=llm)\n return ConversationChain(llm=llm, memory=memory)\n", "password": false, - "name": "prompt", + "name": "code", "advanced": false, - "type": "BasePromptTemplate", + "type": "code", "list": false }, + "_type": "CustomComponent", "llm": { "required": true, "placeholder": "", @@ -453,84 +527,153 @@ "multiline": false, "password": false, "name": "llm", + "display_name": "LLM", "advanced": false, + "dynamic": false, + "info": "", "type": "BaseLanguageModel", "list": false }, - "output_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "response", - "password": false, - "name": "output_key", - "advanced": true, - "type": "str", - "list": false - }, - "input_key": { - "required": true, + "memory": { + "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "input", "password": false, - "name": "input_key", - "advanced": true, - "type": "str", + "name": "memory", + "display_name": "Memory", + "advanced": false, + "dynamic": false, + "info": "Memory to load context from. If none is provided, a ConversationBufferMemory will be used.", + "type": "BaseMemory", "list": false - }, - "_type": "ConversationChain" + } }, "description": "Chain to have a conversation and load context from memory.", "base_classes": [ - "LLMChain", - "ConversationChain", - "Chain" - ] + "Chain", + "Callable" + ], + "display_name": "ConversationChain", + "custom_fields": { + "llm": null, + "memory": null + }, + "output_types": [ + "ConversationChain" + ], + "documentation": "", + "beta": true, + "error": null }, - "id": "dndnode_3", - "value": null + "id": "ConversationChain-VaJuX" }, "selected": false, "positionAbsolute": { - "x": 1591.8694239743472, - "y": 665.1275441560489 + "x": 1628.5027738727983, + "y": 873.3819005330587 }, "dragging": false } ], "edges": [ { - "source": "dndnode_2", - "sourceHandle": "ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel", - "target": "dndnode_1", - "targetHandle": "BaseLanguageModel|llm|dndnode_1", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_1BaseLanguageModel|llm|dndnode_1" + "source": "ChatOpenAI-X2D9z", + "sourceHandle": "{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-X2D9zœ}", + "target": "ConversationSummaryMemory-5dYIh", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œConversationSummaryMemory-5dYIhœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "ConversationSummaryMemory-5dYIh", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-X2D9z" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-X2D9z{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-X2D9zœ}-ConversationSummaryMemory-5dYIh{œfieldNameœ:œllmœ,œidœ:œConversationSummaryMemory-5dYIhœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" }, { - "source": "dndnode_1", - "sourceHandle": "ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory", - "target": "dndnode_3", - "targetHandle": "BaseMemory|memory|dndnode_3", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_1ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory-dndnode_3BaseMemory|memory|dndnode_3" + "source": "ChatOpenAI-X2D9z", + "sourceHandle": "{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-X2D9zœ}", + "target": "ConversationChain-VaJuX", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œConversationChain-VaJuXœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "ConversationChain-VaJuX", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-X2D9z" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ChatOpenAI-X2D9z{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-X2D9zœ}-ConversationChain-VaJuX{œfieldNameœ:œllmœ,œidœ:œConversationChain-VaJuXœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" }, { - "source": "dndnode_2", - "sourceHandle": "ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel", - "target": "dndnode_3", - "targetHandle": "BaseLanguageModel|llm|dndnode_3", - "className": "animate-pulse", - "id": "reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_3BaseLanguageModel|llm|dndnode_3" + "source": "ConversationSummaryMemory-5dYIh", + "sourceHandle": "{œbaseClassesœ:[œBaseChatMemoryœ,œConversationSummaryMemoryœ,œBaseMemoryœ,œSummarizerMixinœ],œdataTypeœ:œConversationSummaryMemoryœ,œidœ:œConversationSummaryMemory-5dYIhœ}", + "target": "ConversationChain-VaJuX", + "targetHandle": "{œfieldNameœ:œmemoryœ,œidœ:œConversationChain-VaJuXœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}", + "data": { + "targetHandle": { + "fieldName": "memory", + "id": "ConversationChain-VaJuX", + "inputTypes": null, + "type": "BaseMemory" + }, + "sourceHandle": { + "baseClasses": [ + "BaseChatMemory", + "ConversationSummaryMemory", + "BaseMemory", + "SummarizerMixin" + ], + "dataType": "ConversationSummaryMemory", + "id": "ConversationSummaryMemory-5dYIh" + } + }, + "style": { + "stroke": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": false, + "id": "reactflow__edge-ConversationSummaryMemory-5dYIh{œbaseClassesœ:[œBaseChatMemoryœ,œConversationSummaryMemoryœ,œBaseMemoryœ,œSummarizerMixinœ],œdataTypeœ:œConversationSummaryMemoryœ,œidœ:œConversationSummaryMemory-5dYIhœ}-ConversationChain-VaJuX{œfieldNameœ:œmemoryœ,œidœ:œConversationChain-VaJuXœ,œinputTypesœ:null,œtypeœ:œBaseMemoryœ}" } ], "viewport": { - "x": -228.12489837254475, - "y": -133.84121476342455, - "zoom": 0.697371833175203 + "x": -158.7329657082944, + "y": 0.5937539896696764, + "zoom": 0.4407480743396983 } - } + }, + "description": "A Chain that uses a ConversationSummaryMemory", + "name": "Summary Memory" } \ No newline at end of file diff --git a/examples/SystemMessage Example.json b/examples/SystemMessage Example.json index c0acfc9..2eb97d8 100644 --- a/examples/SystemMessage Example.json +++ b/examples/SystemMessage Example.json @@ -1,12 +1,11 @@ { - "name": "SystemMessage Example", - "description": "This example showcases the use of SystemMessage and HumanMessage components to build a ChatPromptTemplate. A WebBaseLoader is used to pass a random word to a SystemMessage variable.", + "id": "0eef1e7e-52dc-49bb-939b-1edeb130f145", "data": { "nodes": [ { "width": 384, - "height": 425, - "id": "SystemMessagePromptTemplate-kIj8J", + "height": 469, + "id": "SystemMessagePromptTemplate-FQAQB", "type": "genericNode", "position": { "x": 481.58711153746583, @@ -24,8 +23,9 @@ "password": false, "name": "additional_kwargs", "advanced": false, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "prompt": { @@ -37,6 +37,7 @@ "password": false, "name": "prompt", "advanced": false, + "dynamic": false, "info": "", "type": "prompt", "list": false @@ -56,6 +57,7 @@ "Document", "BaseOutputParser" ], + "dynamic": false, "info": "", "type": "str", "list": false @@ -74,15 +76,16 @@ "Document", "BaseOutputParser" ], + "dynamic": false, "info": "", "type": "str", "list": false } }, - "description": "", + "description": "System message prompt template.", "base_classes": [ - "BaseStringMessagePromptTemplate", "SystemMessagePromptTemplate", + "BaseStringMessagePromptTemplate", "BaseMessagePromptTemplate" ], "name": "", @@ -99,73 +102,11 @@ ] }, "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" - ] - } - } - } - } + "field_formatters": {}, + "beta": false, + "error": null }, - "id": "SystemMessagePromptTemplate-kIj8J", + "id": "SystemMessagePromptTemplate-FQAQB", "value": null }, "selected": false, @@ -177,12 +118,12 @@ }, { "width": 384, - "height": 253, - "id": "HumanMessagePromptTemplate-mMv6B", + "height": 395, + "id": "HumanMessagePromptTemplate-SDNRE", "type": "genericNode", "position": { - "x": 467.9464914249562, - "y": 828.1160630276088 + "x": 496.3774003836203, + "y": 867.5569603085166 }, "data": { "type": "HumanMessagePromptTemplate", @@ -196,8 +137,9 @@ "password": false, "name": "additional_kwargs", "advanced": false, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "prompt": { @@ -209,108 +151,68 @@ "password": false, "name": "prompt", "advanced": false, + "dynamic": false, "info": "", "type": "prompt", "list": false }, - "_type": "HumanMessagePromptTemplate" + "_type": "HumanMessagePromptTemplate", + "input": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "input", + "display_name": "input", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + } }, - "description": "", + "description": "Human message prompt template. This is a message that is sent to the user.", "base_classes": [ "BaseStringMessagePromptTemplate", - "HumanMessagePromptTemplate", - "BaseMessagePromptTemplate" + "BaseMessagePromptTemplate", + "HumanMessagePromptTemplate" ], "name": "", "display_name": "HumanMessagePromptTemplate", "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts", "custom_fields": { - "prompt": [], + "prompt": [ + "input" + ], "": [ "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" - ] - } - } - } - } + "field_formatters": {}, + "beta": false, + "error": null }, - "id": "HumanMessagePromptTemplate-mMv6B", + "id": "HumanMessagePromptTemplate-SDNRE", "value": null }, "selected": false, "positionAbsolute": { - "x": 467.9464914249562, - "y": 828.1160630276088 + "x": 496.3774003836203, + "y": 867.5569603085166 }, "dragging": false }, { "width": 384, - "height": 207, - "id": "ChatPromptTemplate-PZUD8", + "height": 243, + "id": "ChatPromptTemplate-1Jqaq", "type": "genericNode", "position": { "x": 921.018231417185, @@ -328,6 +230,7 @@ "password": false, "name": "messages", "advanced": false, + "dynamic": false, "info": "", "type": "BaseMessagePromptTemplate", "list": true @@ -340,6 +243,7 @@ "password": false, "name": "output_parser", "advanced": false, + "dynamic": false, "info": "", "type": "BaseOutputParser", "list": false @@ -352,6 +256,7 @@ "password": false, "name": "input_variables", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": true @@ -364,13 +269,14 @@ "password": false, "name": "partial_variables", "advanced": false, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "_type": "ChatPromptTemplate" }, - "description": "", + "description": "A prompt template for chat models.", "base_classes": [ "ChatPromptTemplate", "BaseChatPromptTemplate", @@ -381,7 +287,7 @@ "output_types": [], "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts" }, - "id": "ChatPromptTemplate-PZUD8", + "id": "ChatPromptTemplate-1Jqaq", "value": null }, "selected": false, @@ -393,178 +299,8 @@ }, { "width": 384, - "height": 307, - "id": "LLMChain-bcX6V", - "type": "genericNode", - "position": { - "x": 1421.0914439092537, - "y": 507.58787747224306 - }, - "data": { - "type": "LLMChain", - "node": { - "template": { - "callbacks": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "callbacks", - "advanced": false, - "info": "", - "type": "langchain.callbacks.base.BaseCallbackHandler", - "list": true - }, - "llm": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "llm", - "advanced": false, - "info": "", - "type": "BaseLanguageModel", - "list": false - }, - "memory": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "memory", - "advanced": false, - "info": "", - "type": "BaseMemory", - "list": false - }, - "output_parser": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "output_parser", - "advanced": false, - "info": "", - "type": "BaseLLMOutputParser", - "list": false - }, - "prompt": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "password": false, - "name": "prompt", - "advanced": false, - "info": "", - "type": "BasePromptTemplate", - "list": false - }, - "llm_kwargs": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "llm_kwargs", - "advanced": false, - "info": "", - "type": "code", - "list": false - }, - "metadata": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "metadata", - "advanced": false, - "info": "", - "type": "code", - "list": false - }, - "output_key": { - "required": true, - "placeholder": "", - "show": true, - "multiline": false, - "value": "text", - "password": false, - "name": "output_key", - "advanced": true, - "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, - "info": "", - "type": "bool", - "list": false - }, - "tags": { - "required": false, - "placeholder": "", - "show": false, - "multiline": false, - "password": false, - "name": "tags", - "advanced": false, - "info": "", - "type": "str", - "list": true - }, - "verbose": { - "required": false, - "placeholder": "", - "show": true, - "multiline": false, - "value": false, - "password": false, - "name": "verbose", - "advanced": true, - "info": "", - "type": "bool", - "list": false - }, - "_type": "LLMChain" - }, - "description": "Chain to run queries against LLMs.", - "base_classes": [ - "LLMChain", - "Chain", - "function" - ], - "display_name": "LLMChain", - "custom_fields": {}, - "output_types": [], - "documentation": "https://python.langchain.com/docs/modules/chains/foundational/llm_chain" - }, - "id": "LLMChain-bcX6V", - "value": null - }, - "selected": false, - "positionAbsolute": { - "x": 1421.0914439092537, - "y": 507.58787747224306 - } - }, - { - "width": 384, - "height": 641, - "id": "ChatOpenAI-uItND", + "height": 629, + "id": "ChatOpenAI-D5l5D", "type": "genericNode", "position": { "x": 894.4553556077062, @@ -582,6 +318,7 @@ "password": false, "name": "callbacks", "advanced": false, + "dynamic": false, "info": "", "type": "langchain.callbacks.base.BaseCallbackHandler", "list": true @@ -594,6 +331,7 @@ "password": false, "name": "cache", "advanced": false, + "dynamic": false, "info": "", "type": "bool", "list": false @@ -606,6 +344,7 @@ "password": false, "name": "client", "advanced": false, + "dynamic": false, "info": "", "type": "Any", "list": false @@ -619,6 +358,7 @@ "password": false, "name": "max_retries", "advanced": false, + "dynamic": false, "info": "", "type": "int", "list": false @@ -631,6 +371,7 @@ "password": true, "name": "max_tokens", "advanced": false, + "dynamic": false, "info": "", "type": "int", "list": false, @@ -644,8 +385,9 @@ "password": false, "name": "metadata", "advanced": false, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "model_kwargs": { @@ -656,8 +398,9 @@ "password": false, "name": "model_kwargs", "advanced": true, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "model_name": { @@ -679,6 +422,7 @@ ], "name": "model_name", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": true @@ -692,6 +436,7 @@ "password": false, "name": "n", "advanced": false, + "dynamic": false, "info": "", "type": "int", "list": false @@ -705,6 +450,7 @@ "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 @@ -719,6 +465,7 @@ "name": "openai_api_key", "display_name": "OpenAI API Key", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": false @@ -732,6 +479,7 @@ "name": "openai_organization", "display_name": "OpenAI Organization", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": false @@ -745,6 +493,7 @@ "name": "openai_proxy", "display_name": "OpenAI Proxy", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": false @@ -757,6 +506,7 @@ "password": false, "name": "request_timeout", "advanced": false, + "dynamic": false, "info": "", "type": "float", "list": false @@ -770,6 +520,7 @@ "password": false, "name": "streaming", "advanced": false, + "dynamic": false, "info": "", "type": "bool", "list": false @@ -782,6 +533,7 @@ "password": false, "name": "tags", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": true @@ -795,6 +547,7 @@ "password": false, "name": "temperature", "advanced": false, + "dynamic": false, "info": "", "type": "float", "list": false @@ -807,6 +560,7 @@ "password": false, "name": "tiktoken_model_name", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": false @@ -820,17 +574,18 @@ "password": false, "name": "verbose", "advanced": false, + "dynamic": false, "info": "", "type": "bool", "list": false }, "_type": "ChatOpenAI" }, - "description": "Wrapper around OpenAI Chat large language models.", + "description": "`OpenAI` Chat large language models API.", "base_classes": [ "BaseLanguageModel", - "ChatOpenAI", "BaseChatModel", + "ChatOpenAI", "BaseLLM" ], "display_name": "ChatOpenAI", @@ -838,7 +593,7 @@ "output_types": [], "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai" }, - "id": "ChatOpenAI-uItND", + "id": "ChatOpenAI-D5l5D", "value": null }, "selected": false, @@ -850,29 +605,34 @@ }, { "width": 384, - "height": 379, - "id": "WebBaseLoader-opJSn", + "height": 387, + "id": "WebBaseLoader-mPsHC", "type": "genericNode", "position": { - "x": -128.07242459332258, - "y": 402.7212726799363 + "x": -131.97888013945914, + "y": 438.39785141786376 }, "data": { "type": "WebBaseLoader", "node": { "template": { "metadata": { - "required": true, + "required": false, "placeholder": "", "show": true, "multiline": false, - "value": "{}", + "value": [ + { + "": "" + } + ], "password": false, "name": "metadata", "display_name": "Metadata", "advanced": false, + "dynamic": false, "info": "", - "type": "code", + "type": "dict", "list": false }, "web_path": { @@ -885,13 +645,14 @@ "name": "web_path", "display_name": "Web Page", "advanced": false, + "dynamic": false, "info": "", "type": "str", "list": false }, "_type": "WebBaseLoader" }, - "description": "Loader that uses urllib and beautiful soup to load webpages.", + "description": "Load HTML pages using `urllib` and parse them with `BeautifulSoup'.", "base_classes": [ "Document" ], @@ -902,90 +663,271 @@ ], "documentation": "https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base" }, - "id": "WebBaseLoader-opJSn", + "id": "WebBaseLoader-mPsHC", "value": null }, "selected": false, "positionAbsolute": { - "x": -128.07242459332258, - "y": 402.7212726799363 + "x": -131.97888013945914, + "y": 438.39785141786376 + }, + "dragging": false + }, + { + "width": 384, + "height": 339, + "id": "LLMChain-aTRXg", + "type": "genericNode", + "position": { + "x": 1401.9210953757035, + "y": 766.8070231320864 + }, + "data": { + "type": "LLMChain", + "node": { + "template": { + "code": { + "dynamic": true, + "required": true, + "placeholder": "", + "show": false, + "multiline": true, + "value": "from langflow import CustomComponent\nfrom langchain.chains import LLMChain\nfrom typing import Optional, Union, Callable\nfrom langflow.field_typing import (\n BasePromptTemplate,\n BaseLanguageModel,\n BaseMemory,\n Chain,\n)\n\n\nclass LLMChainComponent(CustomComponent):\n display_name = \"LLMChain\"\n description = \"Chain to run queries against LLMs\"\n\n def build_config(self):\n return {\n \"prompt\": {\"display_name\": \"Prompt\"},\n \"llm\": {\"display_name\": \"LLM\"},\n \"memory\": {\"display_name\": \"Memory\"},\n \"code\": {\"show\": False},\n }\n\n def build(\n self,\n prompt: BasePromptTemplate,\n llm: BaseLanguageModel,\n memory: Optional[BaseMemory] = None,\n ) -> Union[Chain, Callable]:\n return LLMChain(prompt=prompt, llm=llm, memory=memory)\n", + "password": false, + "name": "code", + "advanced": false, + "type": "code", + "list": false + }, + "_type": "CustomComponent", + "llm": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "llm", + "display_name": "LLM", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseLanguageModel", + "list": false + }, + "memory": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "memory", + "display_name": "Memory", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseMemory", + "list": false + }, + "prompt": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "prompt", + "display_name": "Prompt", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BasePromptTemplate", + "list": false + } + }, + "description": "Chain to run queries against LLMs", + "base_classes": [ + "Chain", + "Callable" + ], + "display_name": "LLMChain", + "custom_fields": { + "llm": null, + "memory": null, + "prompt": null + }, + "output_types": [ + "LLMChain" + ], + "documentation": "", + "beta": true, + "error": null + }, + "id": "LLMChain-aTRXg" + }, + "selected": false, + "positionAbsolute": { + "x": 1401.9210953757035, + "y": 766.8070231320864 }, "dragging": false } ], "edges": [ { - "source": "HumanMessagePromptTemplate-mMv6B", - "sourceHandle": "HumanMessagePromptTemplate|HumanMessagePromptTemplate-mMv6B|BaseStringMessagePromptTemplate|HumanMessagePromptTemplate|BaseMessagePromptTemplate", - "target": "ChatPromptTemplate-PZUD8", - "targetHandle": "BaseMessagePromptTemplate|messages|ChatPromptTemplate-PZUD8", + "source": "HumanMessagePromptTemplate-SDNRE", + "sourceHandle": "{œbaseClassesœ:[œBaseStringMessagePromptTemplateœ,œBaseMessagePromptTemplateœ,œHumanMessagePromptTemplateœ],œdataTypeœ:œHumanMessagePromptTemplateœ,œidœ:œHumanMessagePromptTemplate-SDNREœ}", + "target": "ChatPromptTemplate-1Jqaq", + "targetHandle": "{œfieldNameœ:œmessagesœ,œidœ:œChatPromptTemplate-1Jqaqœ,œinputTypesœ:null,œtypeœ:œBaseMessagePromptTemplateœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-HumanMessagePromptTemplate-mMv6BHumanMessagePromptTemplate|HumanMessagePromptTemplate-mMv6B|BaseMessagePromptTemplate|BaseStringMessagePromptTemplate|HumanMessagePromptTemplate-ChatPromptTemplate-PZUD8BaseMessagePromptTemplate|messages|ChatPromptTemplate-PZUD8", - "selected": false + "id": "reactflow__edge-HumanMessagePromptTemplate-SDNRE{œbaseClassesœ:[œBaseStringMessagePromptTemplateœ,œBaseMessagePromptTemplateœ,œHumanMessagePromptTemplateœ],œdataTypeœ:œHumanMessagePromptTemplateœ,œidœ:œHumanMessagePromptTemplate-SDNREœ}-ChatPromptTemplate-1Jqaq{œfieldNameœ:œmessagesœ,œidœ:œChatPromptTemplate-1Jqaqœ,œinputTypesœ:null,œtypeœ:œBaseMessagePromptTemplateœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "BaseStringMessagePromptTemplate", + "BaseMessagePromptTemplate", + "HumanMessagePromptTemplate" + ], + "dataType": "HumanMessagePromptTemplate", + "id": "HumanMessagePromptTemplate-SDNRE" + }, + "targetHandle": { + "fieldName": "messages", + "id": "ChatPromptTemplate-1Jqaq", + "inputTypes": null, + "type": "BaseMessagePromptTemplate" + } + } }, { - "source": "SystemMessagePromptTemplate-kIj8J", - "sourceHandle": "SystemMessagePromptTemplate|SystemMessagePromptTemplate-kIj8J|BaseStringMessagePromptTemplate|SystemMessagePromptTemplate|BaseMessagePromptTemplate", - "target": "ChatPromptTemplate-PZUD8", - "targetHandle": "BaseMessagePromptTemplate|messages|ChatPromptTemplate-PZUD8", + "source": "SystemMessagePromptTemplate-FQAQB", + "sourceHandle": "{œbaseClassesœ:[œSystemMessagePromptTemplateœ,œBaseStringMessagePromptTemplateœ,œBaseMessagePromptTemplateœ],œdataTypeœ:œSystemMessagePromptTemplateœ,œidœ:œSystemMessagePromptTemplate-FQAQBœ}", + "target": "ChatPromptTemplate-1Jqaq", + "targetHandle": "{œfieldNameœ:œmessagesœ,œidœ:œChatPromptTemplate-1Jqaqœ,œinputTypesœ:null,œtypeœ:œBaseMessagePromptTemplateœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-SystemMessagePromptTemplate-kIj8JSystemMessagePromptTemplate|SystemMessagePromptTemplate-kIj8J|SystemMessagePromptTemplate|BaseMessagePromptTemplate|BaseStringMessagePromptTemplate-ChatPromptTemplate-PZUD8BaseMessagePromptTemplate|messages|ChatPromptTemplate-PZUD8", - "selected": false + "id": "reactflow__edge-SystemMessagePromptTemplate-FQAQB{œbaseClassesœ:[œSystemMessagePromptTemplateœ,œBaseStringMessagePromptTemplateœ,œBaseMessagePromptTemplateœ],œdataTypeœ:œSystemMessagePromptTemplateœ,œidœ:œSystemMessagePromptTemplate-FQAQBœ}-ChatPromptTemplate-1Jqaq{œfieldNameœ:œmessagesœ,œidœ:œChatPromptTemplate-1Jqaqœ,œinputTypesœ:null,œtypeœ:œBaseMessagePromptTemplateœ}", + "selected": false, + "data": { + "sourceHandle": { + "baseClasses": [ + "SystemMessagePromptTemplate", + "BaseStringMessagePromptTemplate", + "BaseMessagePromptTemplate" + ], + "dataType": "SystemMessagePromptTemplate", + "id": "SystemMessagePromptTemplate-FQAQB" + }, + "targetHandle": { + "fieldName": "messages", + "id": "ChatPromptTemplate-1Jqaq", + "inputTypes": null, + "type": "BaseMessagePromptTemplate" + } + } }, { - "source": "ChatPromptTemplate-PZUD8", - "sourceHandle": "ChatPromptTemplate|ChatPromptTemplate-PZUD8|ChatPromptTemplate|BaseChatPromptTemplate|BasePromptTemplate", - "target": "LLMChain-bcX6V", - "targetHandle": "BasePromptTemplate|prompt|LLMChain-bcX6V", + "source": "WebBaseLoader-mPsHC", + "sourceHandle": "{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œWebBaseLoaderœ,œidœ:œWebBaseLoader-mPsHCœ}", + "target": "SystemMessagePromptTemplate-FQAQB", + "targetHandle": "{œfieldNameœ:œtype_of_assistantœ,œidœ:œSystemMessagePromptTemplate-FQAQBœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-gray-900 stroke-connection", "animated": false, - "id": "reactflow__edge-ChatPromptTemplate-PZUD8ChatPromptTemplate|ChatPromptTemplate-PZUD8|ChatPromptTemplate|BaseChatPromptTemplate|BasePromptTemplate-LLMChain-bcX6VBasePromptTemplate|prompt|LLMChain-bcX6V", - "selected": false + "id": "reactflow__edge-WebBaseLoader-mPsHC{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œWebBaseLoaderœ,œidœ:œWebBaseLoader-mPsHCœ}-SystemMessagePromptTemplate-FQAQB{œfieldNameœ:œtype_of_assistantœ,œidœ:œSystemMessagePromptTemplate-FQAQBœ,œinputTypesœ:[œDocumentœ,œBaseOutputParserœ],œtypeœ:œstrœ}", + "data": { + "sourceHandle": { + "baseClasses": [ + "Document" + ], + "dataType": "WebBaseLoader", + "id": "WebBaseLoader-mPsHC" + }, + "targetHandle": { + "fieldName": "type_of_assistant", + "id": "SystemMessagePromptTemplate-FQAQB", + "inputTypes": [ + "Document", + "BaseOutputParser" + ], + "type": "str" + } + } }, { - "source": "ChatOpenAI-uItND", - "sourceHandle": "ChatOpenAI|ChatOpenAI-uItND|BaseLanguageModel|ChatOpenAI|BaseChatModel|BaseLLM", - "target": "LLMChain-bcX6V", - "targetHandle": "BaseLanguageModel|llm|LLMChain-bcX6V", + "source": "ChatPromptTemplate-1Jqaq", + "sourceHandle": "{œbaseClassesœ:[œChatPromptTemplateœ,œBaseChatPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œChatPromptTemplateœ,œidœ:œChatPromptTemplate-1Jqaqœ}", + "target": "LLMChain-aTRXg", + "targetHandle": "{œfieldNameœ:œpromptœ,œidœ:œLLMChain-aTRXgœ,œinputTypesœ:null,œtypeœ:œBasePromptTemplateœ}", + "data": { + "targetHandle": { + "fieldName": "prompt", + "id": "LLMChain-aTRXg", + "inputTypes": null, + "type": "BasePromptTemplate" + }, + "sourceHandle": { + "baseClasses": [ + "ChatPromptTemplate", + "BaseChatPromptTemplate", + "BasePromptTemplate" + ], + "dataType": "ChatPromptTemplate", + "id": "ChatPromptTemplate-1Jqaq" + } + }, "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-foreground stroke-connection", "animated": false, - "id": "reactflow__edge-ChatOpenAI-uItNDChatOpenAI|ChatOpenAI-uItND|BaseLanguageModel|BaseChatModel|ChatOpenAI|BaseLLM-LLMChain-bcX6VBaseLanguageModel|llm|LLMChain-bcX6V", - "selected": false + "id": "reactflow__edge-ChatPromptTemplate-1Jqaq{œbaseClassesœ:[œChatPromptTemplateœ,œBaseChatPromptTemplateœ,œBasePromptTemplateœ],œdataTypeœ:œChatPromptTemplateœ,œidœ:œChatPromptTemplate-1Jqaqœ}-LLMChain-aTRXg{œfieldNameœ:œpromptœ,œidœ:œLLMChain-aTRXgœ,œinputTypesœ:null,œtypeœ:œBasePromptTemplateœ}" }, { - "source": "WebBaseLoader-opJSn", - "sourceHandle": "WebBaseLoader|WebBaseLoader-opJSn|Document", - "target": "SystemMessagePromptTemplate-kIj8J", - "targetHandle": "Document;BaseOutputParser|type_of_assistant|SystemMessagePromptTemplate-kIj8J", + "source": "ChatOpenAI-D5l5D", + "sourceHandle": "{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-D5l5Dœ}", + "target": "LLMChain-aTRXg", + "targetHandle": "{œfieldNameœ:œllmœ,œidœ:œLLMChain-aTRXgœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}", + "data": { + "targetHandle": { + "fieldName": "llm", + "id": "LLMChain-aTRXg", + "inputTypes": null, + "type": "BaseLanguageModel" + }, + "sourceHandle": { + "baseClasses": [ + "BaseLanguageModel", + "BaseChatModel", + "ChatOpenAI", + "BaseLLM" + ], + "dataType": "ChatOpenAI", + "id": "ChatOpenAI-D5l5D" + } + }, "style": { - "stroke": "#555555" + "stroke": "#555" }, - "className": "", + "className": "stroke-foreground stroke-connection", "animated": false, - "id": "reactflow__edge-WebBaseLoader-opJSnWebBaseLoader|WebBaseLoader-opJSn|Document-SystemMessagePromptTemplate-kIj8JDocument;BaseOutputParser|type_of_assistant|SystemMessagePromptTemplate-kIj8J", - "selected": false + "id": "reactflow__edge-ChatOpenAI-D5l5D{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-D5l5Dœ}-LLMChain-aTRXg{œfieldNameœ:œllmœ,œidœ:œLLMChain-aTRXgœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}" } ], "viewport": { - "x": 120.56985618341992, - "y": -181.38675798627423, - "zoom": 0.6776803408627091 + "x": 93.90965065410012, + "y": 17.8654654481183, + "zoom": 0.3734382864125642 } }, - "id": "24bf6330-1d24-43bb-a93f-2da64badfb67", - "style": null + "description": "This example showcases the use of SystemMessage and HumanMessage components to build a ChatPromptTemplate. A WebBaseLoader is used to pass a random word to a SystemMessage variable.", + "name": "SystemMessage Example (1)" } \ No newline at end of file