diff --git a/.gitignore b/.gitignore index 6769e21..d6ba85c 100644 --- a/.gitignore +++ b/.gitignore @@ -157,4 +157,7 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ \ No newline at end of file +#.idea/ + +# MacOS +.DS_Store \ No newline at end of file diff --git a/examples/Basic Chat with Prompt and History.json b/examples/Basic Chat with Prompt and History.json index 1c18ba5..ef44675 100644 --- a/examples/Basic Chat with Prompt and History.json +++ b/examples/Basic Chat with Prompt and History.json @@ -1 +1,805 @@ -{"description":"A simple chat with a custom prompt template and conversational memory buffer","name":"Basic Chat with Prompt and History","data":{"nodes":[{"width":384,"height":629,"id":"ChatOpenAI-bKyQx","type":"genericNode","position":{"x":170.87326389541306,"y":465.8628482073749},"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","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,"value":60},"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":["ChatOpenAI","BaseChatModel","BaseLanguageModel","BaseLLM"],"display_name":"ChatOpenAI","documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai"},"id":"ChatOpenAI-bKyQx","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":170.87326389541306,"y":465.8628482073749}},{"width":384,"height":339,"id":"LLMChain-KeBhS","type":"genericNode","position":{"x":1250.1806448178158,"y":588.4657451068704},"data":{"type":"LLMChain","node":{"template":{"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"dynamic":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"dynamic":false,"info":"","type":"BaseMemory","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":false,"info":"","type":"BaseLLMOutputParser","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"BasePromptTemplate","list":false},"llm_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm_kwargs","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"dynamic":false,"info":"","type":"str","list":false},"return_final_only":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"return_final_only","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"dynamic":false,"info":"","type":"bool","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"],"display_name":"LLMChain","documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain"},"id":"LLMChain-KeBhS","value":null},"selected":false,"positionAbsolute":{"x":1250.1806448178158,"y":588.4657451068704},"dragging":false},{"width":384,"height":577,"id":"ConversationBufferMemory-SVC3Y","type":"genericNode","position":{"x":802.1806448178158,"y":43.265745106870426},"data":{"type":"ConversationBufferMemory","node":{"template":{"chat_memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"dynamic":false,"info":"","type":"BaseChatMessageHistory","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"input_key":{"required":false,"placeholder":"","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},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"dynamic":false,"info":"","type":"str","list":false},"output_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":false,"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},"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":"Buffer for storing conversation memory.","base_classes":["ConversationBufferMemory","BaseChatMemory","BaseMemory"],"display_name":"ConversationBufferMemory","documentation":"https://python.langchain.com/docs/modules/memory/how_to/buffer"},"id":"ConversationBufferMemory-SVC3Y","value":null},"selected":false,"positionAbsolute":{"x":802.1806448178158,"y":43.265745106870426},"dragging":false},{"width":384,"height":469,"id":"PromptTemplate-weX82","type":"genericNode","position":{"x":190.53285757241179,"y":6.073885727980169},"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":["history","text"]},"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":"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:"},"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","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":"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"]},"output_types":[],"field_formatters":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"PromptTemplate-weX82"},"selected":true,"positionAbsolute":{"x":190.53285757241179,"y":6.073885727980169},"dragging":false}],"edges":[{"source":"ChatOpenAI-bKyQx","sourceHandle":"ChatOpenAI|ChatOpenAI-bKyQx|ChatOpenAI|BaseChatModel|BaseLanguageModel|BaseLLM","target":"LLMChain-KeBhS","targetHandle":"BaseLanguageModel|llm|LLMChain-KeBhS","className":"","id":"reactflow__edge-ChatOpenAI-bKyQxChatOpenAI|ChatOpenAI-bKyQx|ChatOpenAI|BaseChatModel|BaseLanguageModel|BaseLLM-LLMChain-KeBhSBaseLanguageModel|llm|LLMChain-KeBhS","selected":false,"animated":false,"style":{"stroke":"#555"}},{"source":"ConversationBufferMemory-SVC3Y","sourceHandle":"ConversationBufferMemory|ConversationBufferMemory-SVC3Y|ConversationBufferMemory|BaseChatMemory|BaseMemory","target":"LLMChain-KeBhS","targetHandle":"BaseMemory|memory|LLMChain-KeBhS","className":"","id":"reactflow__edge-ConversationBufferMemory-SVC3YConversationBufferMemory|ConversationBufferMemory-SVC3Y|ConversationBufferMemory|BaseChatMemory|BaseMemory-LLMChain-KeBhSBaseMemory|memory|LLMChain-KeBhS","animated":false,"style":{"stroke":"#555"}},{"source":"PromptTemplate-weX82","sourceHandle":"PromptTemplate|PromptTemplate-weX82|StringPromptTemplate|PromptTemplate|BasePromptTemplate","target":"LLMChain-KeBhS","targetHandle":"BasePromptTemplate|prompt|LLMChain-KeBhS","style":{"stroke":"#555"},"className":"stroke-foreground stroke-connection","animated":false,"id":"reactflow__edge-PromptTemplate-weX82PromptTemplate|PromptTemplate-weX82|StringPromptTemplate|PromptTemplate|BasePromptTemplate-LLMChain-KeBhSBasePromptTemplate|prompt|LLMChain-KeBhS"}],"viewport":{"x":130.04266768086563,"y":87.98413672862591,"zoom":0.5351167962218045}},"id":"b2b172aa-f44d-47a4-ab7e-0ba1550e1cd7"} \ No newline at end of file +{ + "id": "956f0b67-9c18-4275-8bf5-dd4024590b82", + "data": { + "nodes": [ + { + "width": 384, + "height": 629, + "id": "ChatOpenAI-qdmsI", + "type": "genericNode", + "position": { + "x": 241.3279963280445, + "y": -486.8439112212181 + }, + "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", + "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, + "value": 60 + }, + "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": [ + "ChatOpenAI", + "BaseChatModel", + "BaseLanguageModel", + "BaseLLM" + ], + "display_name": "ChatOpenAI", + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai" + }, + "id": "ChatOpenAI-qdmsI", + "value": null + }, + "selected": true, + "dragging": false, + "positionAbsolute": { + "x": 241.3279963280445, + "y": -486.8439112212181 + } + }, + { + "width": 384, + "height": 577, + "id": "ConversationBufferMemory-frtJG", + "type": "genericNode", + "position": { + "x": 240.68758111624516, + "y": 172.4355109349313 + }, + "data": { + "type": "ConversationBufferMemory", + "node": { + "template": { + "chat_memory": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "chat_memory", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseChatMessageHistory", + "list": false + }, + "ai_prefix": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "value": "AI", + "password": false, + "name": "ai_prefix", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "human_prefix": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "value": "Human", + "password": false, + "name": "human_prefix", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "input_key": { + "required": false, + "placeholder": "", + "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 + }, + "memory_key": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": "history", + "password": false, + "name": "memory_key", + "advanced": false, + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "output_key": { + "required": false, + "placeholder": "", + "show": true, + "multiline": false, + "value": "", + "password": false, + "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 + }, + "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": "Buffer for storing conversation memory.", + "base_classes": [ + "ConversationBufferMemory", + "BaseChatMemory", + "BaseMemory" + ], + "display_name": "ConversationBufferMemory", + "documentation": "https://python.langchain.com/docs/modules/memory/how_to/buffer" + }, + "id": "ConversationBufferMemory-frtJG", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 240.68758111624516, + "y": 172.4355109349313 + }, + "dragging": false + }, + { + "width": 384, + "height": 469, + "id": "PromptTemplate-mrNIG", + "type": "genericNode", + "position": { + "x": 249.637230371315, + "y": 756.3732210160607 + }, + "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": [ + "history", + "text" + ] + }, + "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": "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:" + }, + "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", + "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": "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": "PromptTemplate-mrNIG" + }, + "selected": false, + "positionAbsolute": { + "x": 249.637230371315, + "y": 756.3732210160607 + }, + "dragging": false + }, + { + "width": 384, + "height": 339, + "id": "LLMChain-Pvm9x", + "type": "genericNode", + "position": { + "x": 1299.7208072540463, + "y": 634.671457752373 + }, + "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-Pvm9x" + }, + "positionAbsolute": { + "x": 1299.7208072540463, + "y": 634.671457752373 + } + } + ], + "edges": [ + { + "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": "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": "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": -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 4091a70..9e97685 100644 --- a/examples/Github Issue Parser.json +++ b/examples/Github Issue Parser.json @@ -1 +1,1187 @@ -{"name":"Github Issue Parser","description":"Gets Issues from Langflow repo and output them as JSON objects.","data":{"nodes":[{"width":384,"height":339,"id":"LLMChain-hPAAZ","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,"dynamic":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"dynamic":false,"info":"","type":"BaseMemory","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":false,"info":"","type":"BaseLLMOutputParser","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"BasePromptTemplate","list":false},"llm_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm_kwargs","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"dynamic":false,"info":"","type":"str","list":false},"return_final_only":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"return_final_only","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"dynamic":false,"info":"","type":"bool","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"],"display_name":"LLMChain","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain"},"id":"LLMChain-hPAAZ","value":null},"selected":false,"positionAbsolute":{"x":2186,"y":544.28125},"dragging":false},{"width":384,"height":658,"id":"PromptTemplate-pq4uZ","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":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"PromptTemplate-pq4uZ","value":null},"selected":true,"dragging":false,"positionAbsolute":{"x":1528.325062605035,"y":-90.85276748266875}},{"width":384,"height":630,"id":"ChatOpenAI-cqGLq","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-cqGLq","value":null},"selected":false,"positionAbsolute":{"x":1498.7361464926273,"y":691.9153700634232},"dragging":false},{"width":384,"height":388,"id":"WebBaseLoader-UVsKp","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-UVsKp","value":null},"selected":false,"positionAbsolute":{"x":769.255740690712,"y":-66.92435295205902},"dragging":false},{"width":384,"height":191,"id":"StructuredOutputParser-CTrMG","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-CTrMG","value":null},"selected":false,"positionAbsolute":{"x":784.4425371799673,"y":369.3130308646057},"dragging":false},{"width":384,"height":474,"id":"ResponseSchema-YysF7","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-YysF7","value":null},"selected":false,"positionAbsolute":{"x":216.1189209515943,"y":204.9292111664579},"dragging":false},{"width":384,"height":474,"id":"ResponseSchema-ZeO3d","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-ZeO3d","value":null},"selected":false,"positionAbsolute":{"x":202.35985494557065,"y":672.782962772499},"dragging":false},{"width":384,"height":474,"id":"ResponseSchema-5h2c8","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-5h2c8","value":null},"selected":false,"positionAbsolute":{"x":208.95930511608958,"y":1143.2299735204035},"dragging":false}],"edges":[{"source":"ChatOpenAI-cqGLq","sourceHandle":"ChatOpenAI|ChatOpenAI-cqGLq|BaseLanguageModel|BaseChatModel|ChatOpenAI|BaseLLM","target":"LLMChain-hPAAZ","targetHandle":"BaseLanguageModel|llm|LLMChain-hPAAZ","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ChatOpenAI-cqGLqChatOpenAI|ChatOpenAI-cqGLq|BaseLanguageModel|BaseChatModel|ChatOpenAI|BaseLLM-LLMChain-hPAAZBaseLanguageModel|llm|LLMChain-hPAAZ","selected":false},{"source":"PromptTemplate-pq4uZ","sourceHandle":"PromptTemplate|PromptTemplate-pq4uZ|StringPromptTemplate|PromptTemplate|BasePromptTemplate","target":"LLMChain-hPAAZ","targetHandle":"BasePromptTemplate|prompt|LLMChain-hPAAZ","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-PromptTemplate-pq4uZPromptTemplate|PromptTemplate-pq4uZ|StringPromptTemplate|PromptTemplate|BasePromptTemplate-LLMChain-hPAAZBasePromptTemplate|prompt|LLMChain-hPAAZ","selected":false},{"source":"WebBaseLoader-UVsKp","sourceHandle":"WebBaseLoader|WebBaseLoader-UVsKp|Document","target":"PromptTemplate-pq4uZ","targetHandle":"Document;BaseOutputParser|issues|PromptTemplate-pq4uZ","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-WebBaseLoader-UVsKpWebBaseLoader|WebBaseLoader-UVsKp|Document-PromptTemplate-pq4uZDocument;BaseOutputParser|issues|PromptTemplate-pq4uZ","selected":false},{"source":"StructuredOutputParser-CTrMG","sourceHandle":"StructuredOutputParser|StructuredOutputParser-CTrMG|StructuredOutputParser|BaseLLMOutputParser|BaseOutputParser","target":"PromptTemplate-pq4uZ","targetHandle":"Document;BaseOutputParser|format_instructions|PromptTemplate-pq4uZ","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-StructuredOutputParser-CTrMGStructuredOutputParser|StructuredOutputParser-CTrMG|StructuredOutputParser|BaseLLMOutputParser|BaseOutputParser-PromptTemplate-pq4uZDocument;BaseOutputParser|format_instructions|PromptTemplate-pq4uZ","selected":false},{"source":"ResponseSchema-5h2c8","sourceHandle":"ResponseSchema|ResponseSchema-5h2c8|ResponseSchema","target":"StructuredOutputParser-CTrMG","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-CTrMG","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ResponseSchema-5h2c8ResponseSchema|ResponseSchema-5h2c8|ResponseSchema-StructuredOutputParser-CTrMGResponseSchema|response_schemas|StructuredOutputParser-CTrMG","selected":false},{"source":"ResponseSchema-ZeO3d","sourceHandle":"ResponseSchema|ResponseSchema-ZeO3d|ResponseSchema","target":"StructuredOutputParser-CTrMG","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-CTrMG","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ResponseSchema-ZeO3dResponseSchema|ResponseSchema-ZeO3d|ResponseSchema-StructuredOutputParser-CTrMGResponseSchema|response_schemas|StructuredOutputParser-CTrMG","selected":false},{"source":"ResponseSchema-YysF7","sourceHandle":"ResponseSchema|ResponseSchema-YysF7|ResponseSchema","target":"StructuredOutputParser-CTrMG","targetHandle":"ResponseSchema|response_schemas|StructuredOutputParser-CTrMG","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ResponseSchema-YysF7ResponseSchema|ResponseSchema-YysF7|ResponseSchema-StructuredOutputParser-CTrMGResponseSchema|response_schemas|StructuredOutputParser-CTrMG","selected":false}],"viewport":{"x":143.7288927262312,"y":65.00964337972812,"zoom":0.36883459148473813}},"id":"18df0520-51e4-4a67-b3eb-d3be0245ee33","user_id":"dc912b7a-d54a-49c7-b783-b51c20388859"} \ 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 3088878..2eb97d8 100644 --- a/examples/SystemMessage Example.json +++ b/examples/SystemMessage Example.json @@ -1 +1,933 @@ -{"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","data":{"nodes":[{"width":384,"height":469,"id":"SystemMessagePromptTemplate-CgmeT","type":"genericNode","position":{"x":481.58711153746583,"y":370.2294992017135},"data":{"type":"SystemMessagePromptTemplate","node":{"template":{"additional_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"additional_kwargs","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"\nYou are a {type_of_assistant} that {behavior}\n","password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"prompt","list":false},"_type":"SystemMessagePromptTemplate","type_of_assistant":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"type_of_assistant","display_name":"type_of_assistant","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false},"behavior":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"","password":false,"name":"behavior","display_name":"behavior","advanced":false,"input_types":["Document","BaseOutputParser"],"dynamic":false,"info":"","type":"str","list":false}},"description":"System message prompt template.","base_classes":["SystemMessagePromptTemplate","BaseStringMessagePromptTemplate","BaseMessagePromptTemplate"],"name":"","display_name":"SystemMessagePromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts","custom_fields":{"prompt":["type_of_assistant","behavior"],"":["type_of_assistant","behavior"]},"output_types":[],"field_formatters":{"formatters":{"openai_api_key":{}},"base_formatters":{"kwargs":{},"optional":{},"list":{},"dict":{},"union":{},"multiline":{},"show":{},"password":{},"default":{},"headers":{},"dict_code_file":{},"model_fields":{"MODEL_DICT":{"OpenAI":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"ChatOpenAI":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"Anthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"],"ChatAnthropic":["claude-v1","claude-v1-100k","claude-instant-v1","claude-instant-v1-100k","claude-v1.3","claude-v1.3-100k","claude-v1.2","claude-v1.0","claude-instant-v1.1","claude-instant-v1.1-100k","claude-instant-v1.0"]}}}},"beta":false,"error":null},"id":"SystemMessagePromptTemplate-CgmeT","value":null},"selected":false,"positionAbsolute":{"x":481.58711153746583,"y":370.2294992017135},"dragging":false},{"width":384,"height":395,"id":"HumanMessagePromptTemplate-a88V3","type":"genericNode","position":{"x":496.3774003836203,"y":867.5569603085166},"data":{"type":"HumanMessagePromptTemplate","node":{"template":{"additional_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"additional_kwargs","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Human: {input}\nAssistant:","password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"prompt","list":false},"_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":"Human message prompt template. This is a message that is sent to the user.","base_classes":["BaseStringMessagePromptTemplate","BaseMessagePromptTemplate","HumanMessagePromptTemplate"],"name":"","display_name":"HumanMessagePromptTemplate","documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts","custom_fields":{"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"]}}}},"beta":false,"error":null},"id":"HumanMessagePromptTemplate-a88V3","value":null},"selected":true,"positionAbsolute":{"x":496.3774003836203,"y":867.5569603085166},"dragging":false},{"width":384,"height":243,"id":"ChatPromptTemplate-LzD9S","type":"genericNode","position":{"x":921.018231417185,"y":598.9805680311384},"data":{"type":"ChatPromptTemplate","node":{"template":{"messages":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"messages","advanced":false,"dynamic":false,"info":"","type":"BaseMessagePromptTemplate","list":true},"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},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"_type":"ChatPromptTemplate"},"description":"A prompt template for chat models.","base_classes":["ChatPromptTemplate","BaseChatPromptTemplate","BasePromptTemplate"],"display_name":"ChatPromptTemplate","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts"},"id":"ChatPromptTemplate-LzD9S","value":null},"selected":false,"positionAbsolute":{"x":921.018231417185,"y":598.9805680311384},"dragging":false},{"width":384,"height":339,"id":"LLMChain-T0qkT","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,"dynamic":false,"info":"","type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"dynamic":false,"info":"","type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"dynamic":false,"info":"","type":"BaseMemory","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"dynamic":false,"info":"","type":"BaseLLMOutputParser","list":false},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"dynamic":false,"info":"","type":"BasePromptTemplate","list":false},"llm_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm_kwargs","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"metadata":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadata","advanced":false,"dynamic":false,"info":"","type":"dict","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"dynamic":false,"info":"","type":"str","list":false},"return_final_only":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"return_final_only","advanced":false,"dynamic":false,"info":"","type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"dynamic":false,"info":"","type":"str","list":true},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"dynamic":false,"info":"","type":"bool","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"],"display_name":"LLMChain","custom_fields":{},"output_types":[],"documentation":"https://python.langchain.com/docs/modules/chains/foundational/llm_chain"},"id":"LLMChain-T0qkT","value":null},"selected":false,"positionAbsolute":{"x":1421.0914439092537,"y":507.58787747224306}},{"width":384,"height":629,"id":"ChatOpenAI-oe8Cu","type":"genericNode","position":{"x":894.4553556077062,"y":1222.7148725684212},"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-oe8Cu","value":null},"selected":false,"positionAbsolute":{"x":894.4553556077062,"y":1222.7148725684212},"dragging":false},{"width":384,"height":387,"id":"WebBaseLoader-F9By5","type":"genericNode","position":{"x":-131.97888013945914,"y":438.39785141786376},"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://random-word-api.herokuapp.com/word","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-F9By5","value":null},"selected":false,"positionAbsolute":{"x":-131.97888013945914,"y":438.39785141786376},"dragging":false}],"edges":[{"source":"HumanMessagePromptTemplate-a88V3","sourceHandle":"HumanMessagePromptTemplate|HumanMessagePromptTemplate-a88V3|BaseStringMessagePromptTemplate|BaseMessagePromptTemplate|HumanMessagePromptTemplate","target":"ChatPromptTemplate-LzD9S","targetHandle":"BaseMessagePromptTemplate|messages|ChatPromptTemplate-LzD9S","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-HumanMessagePromptTemplate-a88V3HumanMessagePromptTemplate|HumanMessagePromptTemplate-a88V3|BaseStringMessagePromptTemplate|BaseMessagePromptTemplate|HumanMessagePromptTemplate-ChatPromptTemplate-LzD9SBaseMessagePromptTemplate|messages|ChatPromptTemplate-LzD9S","selected":false},{"source":"SystemMessagePromptTemplate-CgmeT","sourceHandle":"SystemMessagePromptTemplate|SystemMessagePromptTemplate-CgmeT|SystemMessagePromptTemplate|BaseStringMessagePromptTemplate|BaseMessagePromptTemplate","target":"ChatPromptTemplate-LzD9S","targetHandle":"BaseMessagePromptTemplate|messages|ChatPromptTemplate-LzD9S","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-SystemMessagePromptTemplate-CgmeTSystemMessagePromptTemplate|SystemMessagePromptTemplate-CgmeT|SystemMessagePromptTemplate|BaseStringMessagePromptTemplate|BaseMessagePromptTemplate-ChatPromptTemplate-LzD9SBaseMessagePromptTemplate|messages|ChatPromptTemplate-LzD9S","selected":false},{"source":"ChatPromptTemplate-LzD9S","sourceHandle":"ChatPromptTemplate|ChatPromptTemplate-LzD9S|ChatPromptTemplate|BaseChatPromptTemplate|BasePromptTemplate","target":"LLMChain-T0qkT","targetHandle":"BasePromptTemplate|prompt|LLMChain-T0qkT","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ChatPromptTemplate-LzD9SChatPromptTemplate|ChatPromptTemplate-LzD9S|ChatPromptTemplate|BaseChatPromptTemplate|BasePromptTemplate-LLMChain-T0qkTBasePromptTemplate|prompt|LLMChain-T0qkT","selected":false},{"source":"ChatOpenAI-oe8Cu","sourceHandle":"ChatOpenAI|ChatOpenAI-oe8Cu|BaseLanguageModel|BaseChatModel|ChatOpenAI|BaseLLM","target":"LLMChain-T0qkT","targetHandle":"BaseLanguageModel|llm|LLMChain-T0qkT","style":{"stroke":"#555"},"className":"","animated":false,"id":"reactflow__edge-ChatOpenAI-oe8CuChatOpenAI|ChatOpenAI-oe8Cu|BaseLanguageModel|BaseChatModel|ChatOpenAI|BaseLLM-LLMChain-T0qkTBaseLanguageModel|llm|LLMChain-T0qkT","selected":false},{"source":"WebBaseLoader-F9By5","sourceHandle":"WebBaseLoader|WebBaseLoader-F9By5|Document","target":"SystemMessagePromptTemplate-CgmeT","targetHandle":"Document;BaseOutputParser|type_of_assistant|SystemMessagePromptTemplate-CgmeT","style":{"stroke":"#555"},"className":"stroke-foreground stroke-connection","animated":false,"id":"reactflow__edge-WebBaseLoader-F9By5WebBaseLoader|WebBaseLoader-F9By5|Document-SystemMessagePromptTemplate-CgmeTDocument;BaseOutputParser|type_of_assistant|SystemMessagePromptTemplate-CgmeT"}],"viewport":{"x":95.74623388390322,"y":-187.09106068475103,"zoom":0.49658325770708633}},"id":"695cb3c7-fe81-4a48-85a8-9ecd39fad43f"} \ No newline at end of file +{ + "id": "0eef1e7e-52dc-49bb-939b-1edeb130f145", + "data": { + "nodes": [ + { + "width": 384, + "height": 469, + "id": "SystemMessagePromptTemplate-FQAQB", + "type": "genericNode", + "position": { + "x": 481.58711153746583, + "y": 370.2294992017135 + }, + "data": { + "type": "SystemMessagePromptTemplate", + "node": { + "template": { + "additional_kwargs": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "additional_kwargs", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "prompt": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "value": "\nYou are a {type_of_assistant} that {behavior}\n", + "password": false, + "name": "prompt", + "advanced": false, + "dynamic": false, + "info": "", + "type": "prompt", + "list": false + }, + "_type": "SystemMessagePromptTemplate", + "type_of_assistant": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "type_of_assistant", + "display_name": "type_of_assistant", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + }, + "behavior": { + "required": false, + "placeholder": "", + "show": true, + "multiline": true, + "value": "", + "password": false, + "name": "behavior", + "display_name": "behavior", + "advanced": false, + "input_types": [ + "Document", + "BaseOutputParser" + ], + "dynamic": false, + "info": "", + "type": "str", + "list": false + } + }, + "description": "System message prompt template.", + "base_classes": [ + "SystemMessagePromptTemplate", + "BaseStringMessagePromptTemplate", + "BaseMessagePromptTemplate" + ], + "name": "", + "display_name": "SystemMessagePromptTemplate", + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts", + "custom_fields": { + "prompt": [ + "type_of_assistant", + "behavior" + ], + "": [ + "type_of_assistant", + "behavior" + ] + }, + "output_types": [], + "field_formatters": {}, + "beta": false, + "error": null + }, + "id": "SystemMessagePromptTemplate-FQAQB", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 481.58711153746583, + "y": 370.2294992017135 + }, + "dragging": false + }, + { + "width": 384, + "height": 395, + "id": "HumanMessagePromptTemplate-SDNRE", + "type": "genericNode", + "position": { + "x": 496.3774003836203, + "y": 867.5569603085166 + }, + "data": { + "type": "HumanMessagePromptTemplate", + "node": { + "template": { + "additional_kwargs": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "additional_kwargs", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "prompt": { + "required": true, + "placeholder": "", + "show": true, + "multiline": true, + "value": "Human: {input}\nAssistant:", + "password": false, + "name": "prompt", + "advanced": false, + "dynamic": false, + "info": "", + "type": "prompt", + "list": false + }, + "_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": "Human message prompt template. This is a message that is sent to the user.", + "base_classes": [ + "BaseStringMessagePromptTemplate", + "BaseMessagePromptTemplate", + "HumanMessagePromptTemplate" + ], + "name": "", + "display_name": "HumanMessagePromptTemplate", + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts", + "custom_fields": { + "prompt": [ + "input" + ], + "": [ + "input" + ] + }, + "output_types": [], + "field_formatters": {}, + "beta": false, + "error": null + }, + "id": "HumanMessagePromptTemplate-SDNRE", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 496.3774003836203, + "y": 867.5569603085166 + }, + "dragging": false + }, + { + "width": 384, + "height": 243, + "id": "ChatPromptTemplate-1Jqaq", + "type": "genericNode", + "position": { + "x": 921.018231417185, + "y": 598.9805680311384 + }, + "data": { + "type": "ChatPromptTemplate", + "node": { + "template": { + "messages": { + "required": true, + "placeholder": "", + "show": true, + "multiline": false, + "password": false, + "name": "messages", + "advanced": false, + "dynamic": false, + "info": "", + "type": "BaseMessagePromptTemplate", + "list": true + }, + "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 + }, + "partial_variables": { + "required": false, + "placeholder": "", + "show": false, + "multiline": false, + "password": false, + "name": "partial_variables", + "advanced": false, + "dynamic": false, + "info": "", + "type": "dict", + "list": false + }, + "_type": "ChatPromptTemplate" + }, + "description": "A prompt template for chat models.", + "base_classes": [ + "ChatPromptTemplate", + "BaseChatPromptTemplate", + "BasePromptTemplate" + ], + "display_name": "ChatPromptTemplate", + "custom_fields": {}, + "output_types": [], + "documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/how_to/prompts" + }, + "id": "ChatPromptTemplate-1Jqaq", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 921.018231417185, + "y": 598.9805680311384 + }, + "dragging": false + }, + { + "width": 384, + "height": 629, + "id": "ChatOpenAI-D5l5D", + "type": "genericNode", + "position": { + "x": 894.4553556077062, + "y": 1222.7148725684212 + }, + "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-D5l5D", + "value": null + }, + "selected": false, + "positionAbsolute": { + "x": 894.4553556077062, + "y": 1222.7148725684212 + }, + "dragging": false + }, + { + "width": 384, + "height": 387, + "id": "WebBaseLoader-mPsHC", + "type": "genericNode", + "position": { + "x": -131.97888013945914, + "y": 438.39785141786376 + }, + "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://random-word-api.herokuapp.com/word", + "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-mPsHC", + "value": null + }, + "selected": false, + "positionAbsolute": { + "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-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": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": 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-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": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": 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": "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": "#555" + }, + "className": "stroke-gray-900 stroke-connection", + "animated": 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": "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": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": 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": "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": "#555" + }, + "className": "stroke-foreground stroke-connection", + "animated": 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": 93.90965065410012, + "y": 17.8654654481183, + "zoom": 0.3734382864125642 + } + }, + "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