From 28c4e7365c77a78d569e5fbf6bec147edf1cfa2d Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 17 Feb 2025 11:26:11 -0300 Subject: [PATCH] test: add database-loaded API keys and outdated component detection for starter templates (#6615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add outdated starter projects tests * add api keys loaded from db values * ✨ (Custom Component Generator.spec.ts): add initialGPTsetup function to setup GPT integration 📝 (Custom Component Generator.spec.ts): update test to handle existing API key and log a message if API key is already added --- .../starter_projects/Basic Prompting.json | 153 +--- .../starter_projects/Blog Writer.json | 231 ++--- .../Custom Component Maker.json | 68 +- .../starter_projects/Document Q&A.json | 218 ++--- .../Graph Vector Store RAG.json | 534 +++--------- .../Image Sentiment Analysis.json | 217 ++--- .../Instagram Copywriter.json | 704 ++++++---------- .../starter_projects/LoopTemplate.json | 300 ++----- .../starter_projects/Market Research.json | 515 +++++------- .../starter_projects/Memory Chatbot.json | 211 ++--- .../Portfolio Website Code Generator.json | 318 ++----- .../starter_projects/Research Agent.json | 646 +++++--------- .../SEO Keyword Generator.json | 165 +--- .../starter_projects/SaaS Pricing.json | 14 +- .../Sequential Tasks Agents .json | 788 ++++++------------ .../starter_projects/Simple Agent.json | 14 +- .../Travel Planning Agents.json | 30 +- .../Twitter Thread Generator.json | 332 ++------ .../starter_projects/Vector Store RAG.json | 398 +++------ .../TemplateCardComponent/index.tsx | 5 +- .../Custom Component Generator.spec.ts | 13 +- .../integrations/starter-projects.spec.ts | 49 ++ 22 files changed, 1800 insertions(+), 4123 deletions(-) diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json b/src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json index 092985a91..c8a810d89 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json @@ -8,16 +8,12 @@ "dataType": "ChatInput", "id": "ChatInput-jFwUm", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-OcXkl", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -34,16 +30,12 @@ "dataType": "Prompt", "id": "Prompt-3SM2g", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-OcXkl", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -60,16 +52,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-OcXkl", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-gDYiJ", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -87,9 +75,7 @@ "display_name": "Chat Input", "id": "ChatInput-jFwUm", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -120,9 +106,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -135,9 +119,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -156,9 +138,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -255,10 +235,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -272,9 +249,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -292,9 +267,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -329,9 +302,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -373,9 +344,7 @@ "display_name": "Prompt", "id": "Prompt-3SM2g", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -385,9 +354,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -402,9 +369,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -453,9 +418,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -570,9 +533,7 @@ "data": { "id": "ChatOutput-gDYiJ", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -605,9 +566,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -620,9 +579,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -642,9 +599,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -682,9 +637,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -704,9 +657,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -727,10 +678,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -746,9 +694,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -768,9 +714,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -806,9 +750,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -850,10 +792,7 @@ "data": { "id": "OpenAIModel-OcXkl", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -892,9 +831,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -903,14 +840,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -923,10 +856,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -934,7 +865,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -960,9 +891,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1144,9 +1073,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1243,7 +1170,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Basic Prompting", - "tags": [ - "chatbots" - ] -} \ No newline at end of file + "tags": ["chatbots"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json b/src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json index 94e4cf5be..b63dcc2e9 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json @@ -9,17 +9,12 @@ "dataType": "ParseData", "id": "ParseData-4Sckw", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "references", "id": "Prompt-65R68", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -37,17 +32,12 @@ "dataType": "TextInput", "id": "TextInput-t88FI", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "instructions", "id": "Prompt-65R68", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -64,16 +54,12 @@ "dataType": "Prompt", "id": "Prompt-65R68", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-MyAsQ", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,16 +76,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-MyAsQ", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-BE4YI", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -116,16 +98,12 @@ "dataType": "URL", "id": "URL-EPEnt", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-4Sckw", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -143,9 +121,7 @@ "display_name": "Parse Data", "id": "ParseData-4Sckw", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -153,11 +129,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -173,9 +145,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -186,9 +156,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -218,9 +186,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -253,9 +219,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -298,24 +262,17 @@ "display_name": "Prompt", "id": "Prompt-65R68", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "references", - "instructions" - ] + "template": ["references", "instructions"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -331,9 +288,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -366,10 +321,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -390,10 +342,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -428,9 +377,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -473,9 +420,7 @@ "display_name": "Instructions", "id": "TextInput-t88FI", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -483,9 +428,7 @@ "display_name": "Instructions", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -501,9 +444,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -534,9 +475,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -579,9 +518,7 @@ "display_name": "Chat Output", "id": "ChatOutput-BE4YI", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -612,9 +549,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -627,9 +562,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -648,9 +581,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -686,9 +617,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -706,9 +635,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -727,10 +654,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -744,9 +668,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -764,9 +686,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -801,9 +721,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -952,10 +870,7 @@ "data": { "id": "OpenAIModel-MyAsQ", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -994,9 +909,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1005,14 +918,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1026,9 +935,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1037,7 +944,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1063,9 +970,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1247,9 +1152,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1334,11 +1237,7 @@ "data": { "id": "URL-EPEnt", "node": { - "base_classes": [ - "Data", - "DataFrame", - "Message" - ], + "base_classes": ["Data", "DataFrame", "Message"], "beta": false, "category": "data", "conditional_paths": [], @@ -1347,10 +1246,7 @@ "display_name": "URL", "documentation": "", "edited": false, - "field_order": [ - "urls", - "format" - ], + "field_order": ["urls", "format"], "frozen": false, "icon": "layout-template", "key": "URL", @@ -1367,9 +1263,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -1380,9 +1274,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1393,9 +1285,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -1430,10 +1320,7 @@ "dynamic": false, "info": "Output Format. Use 'Text' to extract the text from the HTML or 'Raw HTML' for the raw HTML content.", "name": "format", - "options": [ - "Text", - "Raw HTML" - ], + "options": ["Text", "Raw HTML"], "options_metadata": [], "placeholder": "", "required": false, @@ -1450,9 +1337,7 @@ "display_name": "URLs", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": true, "list_add_label": "Add URL", "load_from_db": false, @@ -1465,10 +1350,7 @@ "trace_as_input": true, "trace_as_metadata": true, "type": "str", - "value": [ - "https://langflow.org/", - "https://docs.langflow.org/" - ] + "value": ["https://langflow.org/", "https://docs.langflow.org/"] } }, "tool_mode": false @@ -1504,8 +1386,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Blog Writer", - "tags": [ - "chatbots", - "content-generation" - ] -} \ No newline at end of file + "tags": ["chatbots", "content-generation"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json b/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json index aca4871b0..a5259b58e 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json @@ -204,9 +204,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -490,9 +488,7 @@ "name": "messages", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -503,9 +499,7 @@ "name": "messages_text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -722,9 +716,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -950,9 +942,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1267,9 +1257,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -1280,9 +1268,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1293,9 +1279,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -1412,9 +1396,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -1425,9 +1407,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1438,9 +1418,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -1563,9 +1541,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -1576,9 +1552,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1589,9 +1563,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -1722,9 +1694,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1736,9 +1706,7 @@ "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1753,7 +1721,7 @@ "dynamic": false, "info": "Your Anthropic API key.", "input_types": ["Message"], - "load_from_db": false, + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -1762,7 +1730,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "ANTHROPIC_API_KEY" }, "base_url": { "_input_type": "MessageTextInput", diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json b/src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json index 708d5c9ac..9c17d6273 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json @@ -8,16 +8,12 @@ "dataType": "File", "id": "File-GwJQZ", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-BbvKb", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -35,17 +31,12 @@ "dataType": "ParseData", "id": "ParseData-BbvKb", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "Document", "id": "Prompt-yvZHT", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -63,16 +54,12 @@ "dataType": "ChatInput", "id": "ChatInput-li477", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-atkmo", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,16 +77,12 @@ "dataType": "Prompt", "id": "Prompt-yvZHT", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-atkmo", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -117,16 +100,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-atkmo", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-8pgwS", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -145,9 +124,7 @@ "display_name": "Chat Input", "id": "ChatInput-li477", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -178,9 +155,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -193,9 +168,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -214,9 +187,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -313,10 +284,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -330,9 +298,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -350,9 +316,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -387,9 +351,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -431,9 +393,7 @@ "display_name": "Chat Output", "id": "ChatOutput-8pgwS", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -467,9 +427,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -482,9 +440,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -504,9 +460,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -544,9 +498,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -566,9 +518,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -589,10 +539,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -608,9 +555,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -630,9 +575,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -668,9 +611,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -714,9 +655,7 @@ "display_name": "Parse Data", "id": "ParseData-BbvKb", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -724,11 +663,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -744,9 +679,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -757,9 +690,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -789,9 +720,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -824,9 +753,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -934,9 +861,7 @@ "data": { "id": "File-GwJQZ", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -965,9 +890,7 @@ "required_inputs": [], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1030,10 +953,7 @@ "display_name": "Server File Path", "dynamic": false, "info": "Data object with a 'file_path' property pointing to server file or a Message object with a path to the file. Supercedes 'Path' but supports same file types.", - "input_types": [ - "Data", - "Message" - ], + "input_types": ["Data", "Message"], "list": true, "name": "file_path", "placeholder": "", @@ -1180,24 +1100,18 @@ "display_name": "Prompt", "id": "Prompt-yvZHT", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "Document" - ] + "template": ["Document"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "full_path": null, "icon": "prompts", @@ -1218,9 +1132,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1234,10 +1146,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1290,9 +1199,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1334,10 +1241,7 @@ "data": { "id": "OpenAIModel-atkmo", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1376,9 +1280,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1387,14 +1289,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1408,9 +1306,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1419,7 +1315,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1445,9 +1341,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1629,9 +1523,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1727,9 +1619,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Document Q&A", - "tags": [ - "rag", - "q-a", - "openai" - ] -} \ No newline at end of file + "tags": ["rag", "q-a", "openai"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Graph Vector Store RAG.json b/src/backend/base/langflow/initial_setup/starter_projects/Graph Vector Store RAG.json index 9df0e5ff6..bb7576afb 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Graph Vector Store RAG.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Graph Vector Store RAG.json @@ -9,16 +9,12 @@ "dataType": "OpenAIEmbeddings", "id": "OpenAIEmbeddings-jyvkr", "name": "embeddings", - "output_types": [ - "Embeddings" - ] + "output_types": ["Embeddings"] }, "targetHandle": { "fieldName": "embedding_model", "id": "AstraDBGraph-jr8pY", - "inputTypes": [ - "Embeddings" - ], + "inputTypes": ["Embeddings"], "type": "other" } }, @@ -37,16 +33,12 @@ "dataType": "ChatInput", "id": "ChatInput-ZCSfi", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "search_query", "id": "AstraDBGraph-jr8pY", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -65,16 +57,12 @@ "dataType": "AstraDBGraph", "id": "AstraDBGraph-jr8pY", "name": "search_results", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-T6FGT", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -93,17 +81,12 @@ "dataType": "ParseData", "id": "ParseData-T6FGT", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "context", "id": "Prompt-2M2d5", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -122,17 +105,12 @@ "dataType": "ChatInput", "id": "ChatInput-ZCSfi", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "question", "id": "Prompt-2M2d5", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -151,16 +129,12 @@ "dataType": "Prompt", "id": "Prompt-2M2d5", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-a26gL", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -179,16 +153,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-a26gL", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-XL9ho", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -207,17 +177,12 @@ "dataType": "URL", "id": "URL-fyWIL", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data_input", "id": "LanguageRecursiveTextSplitter-jefpx", - "inputTypes": [ - "Document", - "Data" - ], + "inputTypes": ["Document", "Data"], "type": "other" } }, @@ -236,17 +201,12 @@ "dataType": "LanguageRecursiveTextSplitter", "id": "LanguageRecursiveTextSplitter-jefpx", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data_input", "id": "HtmlLinkExtractor-exHgk", - "inputTypes": [ - "Document", - "Data" - ], + "inputTypes": ["Document", "Data"], "type": "other" } }, @@ -265,16 +225,12 @@ "dataType": "HtmlLinkExtractor", "id": "HtmlLinkExtractor-exHgk", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "ingest_data", "id": "AstraDBGraph-FX0tA", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -293,16 +249,12 @@ "dataType": "OpenAIEmbeddings", "id": "OpenAIEmbeddings-83wEc", "name": "embeddings", - "output_types": [ - "Embeddings" - ] + "output_types": ["Embeddings"] }, "targetHandle": { "fieldName": "embedding_model", "id": "AstraDBGraph-FX0tA", - "inputTypes": [ - "Embeddings" - ], + "inputTypes": ["Embeddings"], "type": "other" } }, @@ -319,9 +271,7 @@ "data": { "id": "ChatInput-ZCSfi", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -355,9 +305,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -370,9 +318,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -392,9 +338,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -497,10 +441,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -516,9 +457,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -538,9 +477,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -576,9 +513,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -620,9 +555,7 @@ "data": { "id": "OpenAIEmbeddings-jyvkr", "node": { - "base_classes": [ - "Embeddings" - ], + "base_classes": ["Embeddings"], "beta": false, "category": "embeddings", "conditional_paths": [], @@ -668,14 +601,10 @@ "display_name": "Embeddings", "method": "build_embeddings", "name": "embeddings", - "required_inputs": [ - "openai_api_key" - ], + "required_inputs": ["openai_api_key"], "selected": "Embeddings", "tool_mode": true, - "types": [ - "Embeddings" - ], + "types": ["Embeddings"], "value": "__UNDEFINED__" } ], @@ -705,9 +634,7 @@ "display_name": "Client", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "client", @@ -777,9 +704,7 @@ "display_name": "Deployment", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "deployment", @@ -885,9 +810,7 @@ "display_name": "OpenAI API Base", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_base", @@ -907,10 +830,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "openai_api_key", "password": true, "placeholder": "", @@ -918,7 +839,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "openai_api_type": { "_input_type": "MessageTextInput", @@ -926,9 +847,7 @@ "display_name": "OpenAI API Type", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_type", @@ -948,9 +867,7 @@ "display_name": "OpenAI API Version", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_version", @@ -970,9 +887,7 @@ "display_name": "OpenAI Organization", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_organization", @@ -992,9 +907,7 @@ "display_name": "OpenAI Proxy", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_proxy", @@ -1078,9 +991,7 @@ "display_name": "TikToken Model Name", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tiktoken_model_name", @@ -1124,9 +1035,7 @@ "display_name": "Astra DB Graph", "id": "AstraDBGraph-jr8pY", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1172,16 +1081,10 @@ "display_name": "Search Results", "method": "search_documents", "name": "search_results", - "required_inputs": [ - "api_endpoint", - "collection_name", - "token" - ], + "required_inputs": ["api_endpoint", "collection_name", "token"], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -1193,9 +1096,7 @@ "required_inputs": [], "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -1208,9 +1109,7 @@ "display_name": "API Endpoint", "dynamic": false, "info": "API endpoint URL for the Astra DB service.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": false, "name": "api_endpoint", "password": true, @@ -1349,9 +1248,7 @@ "display_name": "Embedding Model", "dynamic": false, "info": "Allows an embedding model configuration.", - "input_types": [ - "Embeddings" - ], + "input_types": ["Embeddings"], "list": false, "name": "embedding_model", "placeholder": "", @@ -1368,9 +1265,7 @@ "display_name": "Ingest Data", "dynamic": false, "info": "", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": false, "name": "ingest_data", "placeholder": "", @@ -1435,9 +1330,7 @@ "tool_mode": false, "trace_as_metadata": true, "type": "str", - "value": [ - "" - ] + "value": [""] }, "metadata_indexing_include": { "_input_type": "StrInput", @@ -1465,11 +1358,7 @@ "dynamic": false, "info": "Optional distance metric for vector comparisons in the vector store.", "name": "metric", - "options": [ - "cosine", - "dot_product", - "euclidean" - ], + "options": ["cosine", "dot_product", "euclidean"], "placeholder": "", "required": false, "show": true, @@ -1537,9 +1426,7 @@ "display_name": "Search Query", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1604,10 +1491,7 @@ "dynamic": false, "info": "Configuration mode for setting up the vector store, with options like 'Sync', or 'Off'.", "name": "setup_mode", - "options": [ - "Sync", - "Off" - ], + "options": ["Sync", "Off"], "placeholder": "", "required": false, "show": true, @@ -1623,9 +1507,7 @@ "display_name": "Astra DB Application Token", "dynamic": false, "info": "Authentication token for accessing Astra DB.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": false, "name": "token", "password": true, @@ -1660,10 +1542,7 @@ "display_name": "Parse Data", "id": "ParseData-T6FGT", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1671,11 +1550,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -1692,9 +1567,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1705,9 +1578,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1738,9 +1609,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -1777,9 +1646,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1816,25 +1683,17 @@ "data": { "id": "Prompt-2M2d5", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "context", - "question" - ] + "template": ["context", "question"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template", - "tool_placeholder" - ], + "field_order": ["template", "tool_placeholder"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1850,9 +1709,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1885,10 +1742,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1908,10 +1762,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1947,9 +1798,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1985,10 +1834,7 @@ "data": { "id": "OpenAIModel-a26gL", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -2025,9 +1871,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2036,14 +1880,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2056,10 +1896,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -2067,7 +1905,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -2093,9 +1931,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -2261,9 +2097,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "system_message", @@ -2344,9 +2178,7 @@ "data": { "id": "ChatOutput-XL9ho", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -2380,9 +2212,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2395,9 +2225,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -2417,9 +2245,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -2457,9 +2283,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -2479,9 +2303,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -2502,10 +2324,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -2521,9 +2340,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -2543,9 +2360,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -2581,9 +2396,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -2619,10 +2432,7 @@ "data": { "id": "URL-fyWIL", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "category": "data", "conditional_paths": [], @@ -2631,10 +2441,7 @@ "display_name": "URL", "documentation": "", "edited": false, - "field_order": [ - "urls", - "format" - ], + "field_order": ["urls", "format"], "frozen": false, "icon": "layout-template", "key": "URL", @@ -2652,9 +2459,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -2665,9 +2470,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2678,9 +2481,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -2714,10 +2515,7 @@ "dynamic": false, "info": "Output Format. Use 'Text' to extract the text from the HTML or 'Raw HTML' for the raw HTML content.", "name": "format", - "options": [ - "Text", - "Raw HTML" - ], + "options": ["Text", "Raw HTML"], "placeholder": "", "required": false, "show": true, @@ -2733,9 +2531,7 @@ "display_name": "URLs", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": true, "load_from_db": false, "name": "urls", @@ -2787,9 +2583,7 @@ "data": { "id": "AstraDBGraph-FX0tA", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "vectorstores", "conditional_paths": [], @@ -2837,16 +2631,10 @@ "display_name": "Search Results", "method": "search_documents", "name": "search_results", - "required_inputs": [ - "api_endpoint", - "collection_name", - "token" - ], + "required_inputs": ["api_endpoint", "collection_name", "token"], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -2858,9 +2646,7 @@ "required_inputs": [], "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -2874,9 +2660,7 @@ "display_name": "API Endpoint", "dynamic": false, "info": "API endpoint URL for the Astra DB service.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": false, "name": "api_endpoint", "password": true, @@ -3015,9 +2799,7 @@ "display_name": "Embedding Model", "dynamic": false, "info": "Allows an embedding model configuration.", - "input_types": [ - "Embeddings" - ], + "input_types": ["Embeddings"], "list": false, "name": "embedding_model", "placeholder": "", @@ -3034,9 +2816,7 @@ "display_name": "Ingest Data", "dynamic": false, "info": "", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": false, "name": "ingest_data", "placeholder": "", @@ -3129,11 +2909,7 @@ "dynamic": false, "info": "Optional distance metric for vector comparisons in the vector store.", "name": "metric", - "options": [ - "cosine", - "dot_product", - "euclidean" - ], + "options": ["cosine", "dot_product", "euclidean"], "placeholder": "", "required": false, "show": true, @@ -3200,9 +2976,7 @@ "display_name": "Search Query", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -3266,10 +3040,7 @@ "dynamic": false, "info": "Configuration mode for setting up the vector store, with options like 'Sync', or 'Off'.", "name": "setup_mode", - "options": [ - "Sync", - "Off" - ], + "options": ["Sync", "Off"], "placeholder": "", "required": false, "show": true, @@ -3285,9 +3056,7 @@ "display_name": "Astra DB Application Token", "dynamic": false, "info": "Authentication token for accessing Astra DB.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": false, "name": "token", "password": true, @@ -3321,9 +3090,7 @@ "data": { "id": "LanguageRecursiveTextSplitter-jefpx", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "langchain_utilities", "conditional_paths": [], @@ -3356,9 +3123,7 @@ "required_inputs": [], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -3469,10 +3234,7 @@ "display_name": "Input", "dynamic": false, "info": "The texts to split.", - "input_types": [ - "Document", - "Data" - ], + "input_types": ["Document", "Data"], "list": false, "name": "data_input", "placeholder": "", @@ -3508,9 +3270,7 @@ "data": { "id": "HtmlLinkExtractor-exHgk", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "langchain_utilities", "conditional_paths": [], @@ -3519,11 +3279,7 @@ "display_name": "HTML Link Extractor", "documentation": "https://python.langchain.com/v0.2/api_reference/community/graph_vectorstores/langchain_community.graph_vectorstores.extractors.html_link_extractor.HtmlLinkExtractor.html", "edited": false, - "field_order": [ - "kind", - "drop_fragments", - "data_input" - ], + "field_order": ["kind", "drop_fragments", "data_input"], "frozen": false, "icon": "LangChain", "key": "HtmlLinkExtractor", @@ -3542,9 +3298,7 @@ "required_inputs": [], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -3576,10 +3330,7 @@ "display_name": "Input", "dynamic": false, "info": "The texts from which to extract links.", - "input_types": [ - "Document", - "Data" - ], + "input_types": ["Document", "Data"], "list": false, "name": "data_input", "placeholder": "", @@ -3650,9 +3401,7 @@ "data": { "id": "OpenAIEmbeddings-83wEc", "node": { - "base_classes": [ - "Embeddings" - ], + "base_classes": ["Embeddings"], "beta": false, "category": "embeddings", "conditional_paths": [], @@ -3699,14 +3448,10 @@ "display_name": "Embeddings", "method": "build_embeddings", "name": "embeddings", - "required_inputs": [ - "openai_api_key" - ], + "required_inputs": ["openai_api_key"], "selected": "Embeddings", "tool_mode": true, - "types": [ - "Embeddings" - ], + "types": ["Embeddings"], "value": "__UNDEFINED__" } ], @@ -3737,9 +3482,7 @@ "display_name": "Client", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "client", @@ -3811,9 +3554,7 @@ "display_name": "Deployment", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "deployment", @@ -3923,9 +3664,7 @@ "display_name": "OpenAI API Base", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_base", @@ -3945,10 +3684,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "openai_api_key", "password": true, "placeholder": "", @@ -3956,7 +3693,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "openai_api_type": { "_input_type": "MessageTextInput", @@ -3964,9 +3701,7 @@ "display_name": "OpenAI API Type", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_type", @@ -3986,9 +3721,7 @@ "display_name": "OpenAI API Version", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_version", @@ -4008,9 +3741,7 @@ "display_name": "OpenAI Organization", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_organization", @@ -4030,9 +3761,7 @@ "display_name": "OpenAI Proxy", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_proxy", @@ -4120,9 +3849,7 @@ "display_name": "TikToken Model Name", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tiktoken_model_name", @@ -4247,8 +3974,5 @@ "is_component": false, "last_tested_version": "1.1.1", "name": "Graph RAG", - "tags": [ - "rag", - "q-a" - ] -} \ No newline at end of file + "tags": ["rag", "q-a"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json b/src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json index e989d5d2d..16f919dc5 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json @@ -9,16 +9,12 @@ "dataType": "StructuredOutputComponent", "id": "StructuredOutputComponent-XYoUc", "name": "structured_output", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-HzweJ", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -37,16 +33,12 @@ "dataType": "ParseData", "id": "ParseData-HzweJ", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-xQxLm", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -64,16 +56,12 @@ "dataType": "ChatInput", "id": "ChatInput-rAWlE", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-cqeNw", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -91,16 +79,12 @@ "dataType": "Prompt", "id": "Prompt-AzK6t", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-cqeNw", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -118,16 +102,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-cqeNw", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "StructuredOutputComponent-XYoUc", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -145,16 +125,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-cqeNw", "name": "model_output", - "output_types": [ - "LanguageModel" - ] + "output_types": ["LanguageModel"] }, "targetHandle": { "fieldName": "llm", "id": "StructuredOutputComponent-XYoUc", - "inputTypes": [ - "LanguageModel" - ], + "inputTypes": ["LanguageModel"], "type": "other" } }, @@ -173,9 +149,7 @@ "display_name": "Chat Input", "id": "ChatInput-rAWlE", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -209,9 +183,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -224,9 +196,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -246,9 +216,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -351,10 +319,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -370,9 +335,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -392,9 +355,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -430,9 +391,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -476,9 +435,7 @@ "display_name": "Chat Output", "id": "ChatOutput-xQxLm", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -512,9 +469,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -527,9 +482,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -549,9 +502,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -589,9 +540,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -611,9 +560,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -634,10 +581,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -653,9 +597,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -675,9 +617,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -713,9 +653,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -794,9 +732,7 @@ "display_name": "Structured Output", "id": "StructuredOutputComponent-XYoUc", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -824,9 +760,7 @@ "method": "build_structured_output", "name": "structured_output", "selected": "Data", - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -857,9 +791,7 @@ "display_name": "Input message", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -879,9 +811,7 @@ "display_name": "Language Model", "dynamic": false, "info": "The language model to use to generate the structured output.", - "input_types": [ - "LanguageModel" - ], + "input_types": ["LanguageModel"], "list": false, "name": "llm", "placeholder": "", @@ -1025,9 +955,7 @@ "data": { "id": "ParseData-HzweJ", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1035,11 +963,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -1055,9 +979,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1068,9 +990,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1101,9 +1021,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -1139,9 +1057,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1186,9 +1102,7 @@ "display_name": "Prompt", "id": "Prompt-AzK6t", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1198,9 +1112,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1216,9 +1128,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1267,9 +1177,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1311,10 +1219,7 @@ "data": { "id": "OpenAIModel-cqeNw", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1353,9 +1258,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1364,14 +1267,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1385,9 +1284,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1396,7 +1293,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1422,9 +1319,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1606,9 +1501,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1704,7 +1597,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Image Sentiment Analysis", - "tags": [ - "classification" - ] -} \ No newline at end of file + "tags": ["classification"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json b/src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json index acd12fb9a..b1e90ea21 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json @@ -7,27 +7,22 @@ "data": { "sourceHandle": { "dataType": "TextInput", - "id": "TextInput-Uonj7", + "id": "TextInput-OSpmP", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "guidelines", - "id": "Prompt-DfQRZ", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-jlObO", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-TextInput-Uonj7{œdataTypeœ:œTextInputœ,œidœ:œTextInput-Uonj7œ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-Prompt-DfQRZ{œfieldNameœ:œguidelinesœ,œidœ:œPrompt-DfQRZœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "TextInput-Uonj7", - "sourceHandle": "{œdataTypeœ: œTextInputœ, œidœ: œTextInput-Uonj7œ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-DfQRZ", - "targetHandle": "{œfieldNameœ: œguidelinesœ, œidœ: œPrompt-DfQRZœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-TextInput-OSpmP{œdataTypeœ:œTextInputœ,œidœ:œTextInput-OSpmPœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-Prompt-jlObO{œfieldNameœ:œguidelinesœ,œidœ:œPrompt-jlObOœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "TextInput-OSpmP", + "sourceHandle": "{œdataTypeœ: œTextInputœ, œidœ: œTextInput-OSpmPœ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-jlObO", + "targetHandle": "{œfieldNameœ: œguidelinesœ, œidœ: œPrompt-jlObOœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -35,26 +30,22 @@ "data": { "sourceHandle": { "dataType": "ChatInput", - "id": "ChatInput-ferrV", + "id": "ChatInput-jogsq", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Agent-pNUOq", - "inputTypes": [ - "Message" - ], + "id": "Agent-NNcr1", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-ChatInput-ferrV{œdataTypeœ:œChatInputœ,œidœ:œChatInput-ferrVœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-pNUOq{œfieldNameœ:œinput_valueœ,œidœ:œAgent-pNUOqœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "ChatInput-ferrV", - "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-ferrVœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-pNUOq", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-pNUOqœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-ChatInput-jogsq{œdataTypeœ:œChatInputœ,œidœ:œChatInput-jogsqœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-NNcr1{œfieldNameœ:œinput_valueœ,œidœ:œAgent-NNcr1œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "ChatInput-jogsq", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-jogsqœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-NNcr1", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-NNcr1œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -62,27 +53,22 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-pNUOq", + "id": "Agent-NNcr1", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "context", - "id": "Prompt-DfQRZ", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-jlObO", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-Agent-pNUOq{œdataTypeœ:œAgentœ,œidœ:œAgent-pNUOqœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-DfQRZ{œfieldNameœ:œcontextœ,œidœ:œPrompt-DfQRZœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "Agent-pNUOq", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-pNUOqœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-DfQRZ", - "targetHandle": "{œfieldNameœ: œcontextœ, œidœ: œPrompt-DfQRZœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Agent-NNcr1{œdataTypeœ:œAgentœ,œidœ:œAgent-NNcr1œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-jlObO{œfieldNameœ:œcontextœ,œidœ:œPrompt-jlObOœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "Agent-NNcr1", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-NNcr1œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-jlObO", + "targetHandle": "{œfieldNameœ: œcontextœ, œidœ: œPrompt-jlObOœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -90,195 +76,162 @@ "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-R9hC2", + "id": "Prompt-HtPaM", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "ChatOutput-hU0Qy", - "inputTypes": [ - "Message" - ], + "id": "ChatOutput-L2u2A", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-R9hC2{œdataTypeœ:œPromptœ,œidœ:œPrompt-R9hC2œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-hU0Qy{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-hU0Qyœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-R9hC2", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-R9hC2œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "ChatOutput-hU0Qy", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-hU0Qyœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-HtPaM{œdataTypeœ:œPromptœ,œidœ:œPrompt-HtPaMœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-L2u2A{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-L2u2Aœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-HtPaM", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-HtPaMœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "ChatOutput-L2u2A", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-L2u2Aœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "TavilySearchComponent", - "id": "TavilySearchComponent-h8yAo", + "id": "TavilySearchComponent-mnzRD", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-pNUOq", - "inputTypes": [ - "Tool" - ], + "id": "Agent-NNcr1", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-TavilySearchComponent-h8yAo{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-h8yAoœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-pNUOq{œfieldNameœ:œtoolsœ,œidœ:œAgent-pNUOqœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "TavilySearchComponent-h8yAo", - "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-h8yAoœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-pNUOq", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-pNUOqœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-TavilySearchComponent-mnzRD{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-mnzRDœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-NNcr1{œfieldNameœ:œtoolsœ,œidœ:œAgent-NNcr1œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "TavilySearchComponent-mnzRD", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-mnzRDœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-NNcr1", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-NNcr1œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-DfQRZ", + "id": "Prompt-jlObO", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "OpenAIModel-N7jW7", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-qQ00F", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-DfQRZ{œdataTypeœ:œPromptœ,œidœ:œPrompt-DfQRZœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-N7jW7{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-N7jW7œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-DfQRZ", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-DfQRZœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-N7jW7", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-N7jW7œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-jlObO{œdataTypeœ:œPromptœ,œidœ:œPrompt-jlObOœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-qQ00F{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-qQ00Fœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-jlObO", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-jlObOœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-qQ00F", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-qQ00Fœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-N7jW7", + "id": "OpenAIModel-qQ00F", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "post", - "id": "Prompt-OcCWU", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-qF4uD", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-OpenAIModel-N7jW7{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-N7jW7œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-OcCWU{œfieldNameœ:œpostœ,œidœ:œPrompt-OcCWUœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "OpenAIModel-N7jW7", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-N7jW7œ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-OcCWU", - "targetHandle": "{œfieldNameœ: œpostœ, œidœ: œPrompt-OcCWUœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-OpenAIModel-qQ00F{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-qQ00Fœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-qF4uD{œfieldNameœ:œpostœ,œidœ:œPrompt-qF4uDœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "OpenAIModel-qQ00F", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-qQ00Fœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-qF4uD", + "targetHandle": "{œfieldNameœ: œpostœ, œidœ: œPrompt-qF4uDœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-N7jW7", + "id": "OpenAIModel-qQ00F", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "post", - "id": "Prompt-R9hC2", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-HtPaM", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-OpenAIModel-N7jW7{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-N7jW7œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-R9hC2{œfieldNameœ:œpostœ,œidœ:œPrompt-R9hC2œ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "OpenAIModel-N7jW7", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-N7jW7œ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-R9hC2", - "targetHandle": "{œfieldNameœ: œpostœ, œidœ: œPrompt-R9hC2œ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-OpenAIModel-qQ00F{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-qQ00Fœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-HtPaM{œfieldNameœ:œpostœ,œidœ:œPrompt-HtPaMœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "OpenAIModel-qQ00F", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-qQ00Fœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-HtPaM", + "targetHandle": "{œfieldNameœ: œpostœ, œidœ: œPrompt-HtPaMœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-OcCWU", + "id": "Prompt-qF4uD", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "OpenAIModel-DdNth", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-vHqv4", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-OcCWU{œdataTypeœ:œPromptœ,œidœ:œPrompt-OcCWUœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-DdNth{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-DdNthœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-OcCWU", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-OcCWUœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-DdNth", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-DdNthœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-qF4uD{œdataTypeœ:œPromptœ,œidœ:œPrompt-qF4uDœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-vHqv4{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-vHqv4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-qF4uD", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-qF4uDœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-vHqv4", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-vHqv4œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-DdNth", + "id": "OpenAIModel-vHqv4", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "image_description", - "id": "Prompt-R9hC2", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-HtPaM", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-OpenAIModel-DdNth{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-DdNthœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-R9hC2{œfieldNameœ:œimage_descriptionœ,œidœ:œPrompt-R9hC2œ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "OpenAIModel-DdNth", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-DdNthœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-R9hC2", - "targetHandle": "{œfieldNameœ: œimage_descriptionœ, œidœ: œPrompt-R9hC2œ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-OpenAIModel-vHqv4{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-vHqv4œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-HtPaM{œfieldNameœ:œimage_descriptionœ,œidœ:œPrompt-HtPaMœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "OpenAIModel-vHqv4", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-vHqv4œ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-HtPaM", + "targetHandle": "{œfieldNameœ: œimage_descriptionœ, œidœ: œPrompt-HtPaMœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" } ], "nodes": [ { "data": { - "id": "ChatInput-ferrV", + "id": "ChatInput-jogsq", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -312,9 +265,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -327,9 +278,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -348,9 +297,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -451,10 +398,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -469,9 +413,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -490,9 +432,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -527,9 +467,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -548,10 +486,10 @@ }, "dragging": false, "height": 234, - "id": "ChatInput-ferrV", + "id": "ChatInput-jogsq", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 5183.264962599111, @@ -569,26 +507,19 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-DfQRZ", + "id": "Prompt-jlObO", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "context", - "guidelines" - ] + "template": ["context", "guidelines"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -604,9 +535,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -639,10 +568,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -662,10 +588,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -701,9 +624,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -724,10 +645,10 @@ }, "dragging": false, "height": 433, - "id": "Prompt-DfQRZ", + "id": "Prompt-jlObO", "measured": { "height": 433, - "width": 360 + "width": 320 }, "position": { "x": 6044.447585613556, @@ -743,11 +664,9 @@ }, { "data": { - "id": "TextInput-Uonj7", + "id": "TextInput-OSpmP", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -755,9 +674,7 @@ "display_name": "Text Input", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -773,9 +690,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -806,9 +721,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -828,10 +741,10 @@ }, "dragging": false, "height": 234, - "id": "TextInput-Uonj7", + "id": "TextInput-OSpmP", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 5672.768365094557, @@ -849,25 +762,19 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-OcCWU", + "id": "Prompt-qF4uD", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "post" - ] + "template": ["post"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -883,9 +790,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -918,10 +823,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -957,9 +859,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -980,10 +880,10 @@ }, "dragging": false, "height": 347, - "id": "Prompt-OcCWU", + "id": "Prompt-qF4uD", "measured": { "height": 347, - "width": 360 + "width": 320 }, "position": { "x": 6818.9410289594325, @@ -1001,11 +901,9 @@ "data": { "description": "Display a chat message in the Playground.", "display_name": "Chat Output", - "id": "ChatOutput-hU0Qy", + "id": "ChatOutput-L2u2A", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1038,9 +936,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1053,9 +949,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -1075,9 +969,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -1115,9 +1007,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -1137,9 +1027,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1160,10 +1048,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -1179,9 +1064,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1201,9 +1084,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1239,9 +1120,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -1262,10 +1141,10 @@ }, "dragging": false, "height": 234, - "id": "ChatOutput-hU0Qy", + "id": "ChatOutput-L2u2A", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 7980.617825443558, @@ -1283,11 +1162,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Agent", - "id": "Agent-pNUOq", + "id": "Agent-NNcr1", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1337,9 +1214,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1368,9 +1243,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1421,9 +1294,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1474,9 +1345,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1568,9 +1437,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -1664,10 +1531,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -1701,11 +1565,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -1721,9 +1581,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1743,9 +1601,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1765,9 +1621,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1804,9 +1658,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1845,9 +1697,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -1881,10 +1731,10 @@ }, "dragging": false, "height": 650, - "id": "Agent-pNUOq", + "id": "Agent-NNcr1", "measured": { "height": 650, - "width": 360 + "width": 320 }, "position": { "x": 5665.465212822881, @@ -1902,26 +1752,19 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-R9hC2", + "id": "Prompt-HtPaM", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "post", - "image_description" - ] + "template": ["post", "image_description"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1937,9 +1780,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1972,10 +1813,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1995,10 +1833,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -2034,9 +1869,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -2057,10 +1890,10 @@ }, "dragging": false, "height": 433, - "id": "Prompt-R9hC2", + "id": "Prompt-HtPaM", "measured": { "height": 433, - "width": 360 + "width": 320 }, "position": { "x": 7613.837241084599, @@ -2076,7 +1909,7 @@ }, { "data": { - "id": "note-grPkG", + "id": "note-8p0Lz", "node": { "description": "# Instagram Copywriter \n\nWelcome to the Instagram Copywriter! This flow helps you create compelling Instagram posts with AI-generated content and image prompts.\n\n## Instructions\n1. Enter Your Topic\n - In the Chat Input, enter a brief description of the topic you want to post about.\n - Example: \"Create a post about meditation and its benefits\"\n\n2. Review the Generated Content\n - The flow will use AI to research your topic and generate a formatted Instagram post.\n - The post will include an opening line, main content, emojis, a call-to-action, and hashtags.\n\n3. Check the Image Prompt\n - The flow will also generate a detailed image prompt based on your post content.\n - This prompt can be used with image generation tools to create a matching visual.\n\n4. Copy the Final Output\n - The Chat Output will display the complete Instagram post text followed by the image generation prompt.\n - Copy this output to use in your Instagram content creation process.\n\n5. Refine if Needed\n - If you're not satisfied with the result, you can adjust the input or modify the OpenAI model settings for different outputs.\n\nRemember: Keep your initial topic input clear and concise for best results! 🎨✨", "display_name": "", @@ -2089,10 +1922,10 @@ }, "dragging": false, "height": 648, - "id": "note-grPkG", + "id": "note-8p0Lz", "measured": { "height": 648, - "width": 328 + "width": 555 }, "position": { "x": 4492.051129290571, @@ -2113,7 +1946,7 @@ }, { "data": { - "id": "note-motsF", + "id": "note-yOL03", "node": { "description": "**Text Input (Guidelines Prompt)**\n - NOTE: \"Contains Instagram post formatting rules. Don't modify this component as it maintains format consistency.\"\n - Maintains fixed guidelines for:\n * Opening structure\n * Main content\n * Emoji usage\n * Call to Action (CTA)\n * Hashtags\n\n4. **First Prompt + OpenAI Sequence**\n - NOTE: \"Generates initial post content following Instagram guidelines\"\n - Settings:\n * Temperature: 0.7 (good balance between creativity and consistency)\n * Input: Receives research context\n * Output: Generates formatted post text\n\n", "display_name": "", @@ -2126,10 +1959,10 @@ }, "dragging": false, "height": 325, - "id": "note-motsF", + "id": "note-yOL03", "measured": { "height": 325, - "width": 328 + "width": 326 }, "position": { "x": 5666.120349284508, @@ -2146,7 +1979,7 @@ }, { "data": { - "id": "note-nnYl4", + "id": "note-FH7oq", "node": { "description": "**Second Prompt + OpenAI Sequence**\n - NOTE: \"Transforms the generated post into a prompt for image generation\"\n - Settings:\n * Temperature: 0.7\n * Input: Receives generated post\n * Output: Creates detailed description for image generation\n\n", "display_name": "", @@ -2159,10 +1992,10 @@ }, "dragging": false, "height": 325, - "id": "note-nnYl4", + "id": "note-FH7oq", "measured": { "height": 325, - "width": 328 + "width": 326 }, "position": { "x": 6786.375917286389, @@ -2178,7 +2011,7 @@ }, { "data": { - "id": "note-Bw2uq", + "id": "note-wvs7l", "node": { "description": "**Final Prompt**\n - NOTE: \"Combines Instagram post with image prompt in a final format\"\n - Structure:\n * First part: Complete Instagram post\n * Second part: Image generation prompt\n * Separator: Uses \"**Prompt:**\" to divide sections\n\n7. **Chat Output (Final Output)**\n - NOTE: \"Presents the combined final result that can be copied and used directly\"\n\nGENERAL USAGE TIPS:\n- Keep initial inputs clear and specific\n- Don't modify pre-defined Instagram guidelines\n- If style adjustments are needed, only modify the OpenAI models' temperature\n- Verify all connections are correct before running\n- Final result will always have two parts: post + image prompt\n\nFLOW CONSIDERATIONS:\n- All tools connect only to the Tool Calling Agent\n- The flow is unidirectional (no loops)\n- Each prompt template maintains specific formatting\n- Temperatures are set for optimal creativity/consistency balance\n\nTROUBLESHOOTING NOTES:\n- If output is too creative: Lower temperature", "display_name": "", @@ -2191,10 +2024,10 @@ }, "dragging": false, "height": 325, - "id": "note-Bw2uq", + "id": "note-wvs7l", "measured": { "height": 325, - "width": 328 + "width": 326 }, "position": { "x": 7606.419013912975, @@ -2210,7 +2043,7 @@ }, { "data": { - "id": "note-wUxWf", + "id": "note-Hj9Ay", "node": { "description": "# 🔑 Tavily AI Search Needs API Key\n\nYou can get 1000 searches/month free [here](https://tavily.com/) ", "display_name": "", @@ -2223,10 +2056,10 @@ }, "dragging": false, "height": 325, - "id": "note-wUxWf", + "id": "note-Hj9Ay", "measured": { "height": 325, - "width": 328 + "width": 326 }, "position": { "x": 5174.678177457385, @@ -2242,14 +2075,10 @@ }, { "data": { - "id": "TavilySearchComponent-h8yAo", + "id": "TavilySearchComponent-mnzRD", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, - "category": "tools", "conditional_paths": [], "custom_fields": {}, "description": "**Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", @@ -2261,13 +2090,13 @@ "query", "search_depth", "topic", + "time_range", "max_results", "include_images", "include_answer" ], "frozen": false, "icon": "TavilyIcon", - "key": "TavilySearchComponent", "legacy": false, "metadata": {}, "minimized": false, @@ -2282,14 +2111,12 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "tool_mode": true, + "types": ["Tool"], "value": "__UNDEFINED__" } ], "pinned": false, - "score": 0.0075846556637275304, "template": { "_type": "Component", "api_key": { @@ -2298,9 +2125,7 @@ "display_name": "Tavily API Key", "dynamic": false, "info": "Your Tavily API Key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2309,7 +2134,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "TAVILY_API_KEY" }, "code": { "advanced": true, @@ -2327,7 +2152,7 @@ "show": true, "title_case": false, "type": "code", - "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" + "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n DropdownInput(\n name=\"time_range\",\n display_name=\"Time Range\",\n info=\"The time range back from the current date to include in the search results.\",\n options=[\"day\", \"week\", \"month\", \"year\"],\n value=None,\n advanced=True,\n combobox=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n \"time_range\": self.time_range,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" }, "include_answer": { "_input_type": "BoolInput", @@ -2389,9 +2214,7 @@ "display_name": "Search Query", "dynamic": false, "info": "The search query you want to execute with Tavily.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2410,14 +2233,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Depth", "dynamic": false, "info": "The depth of the search.", "name": "search_depth", - "options": [ - "basic", - "advanced" - ], + "options": ["basic", "advanced"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2427,6 +2249,25 @@ "type": "str", "value": "advanced" }, + "time_range": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": true, + "dialog_inputs": {}, + "display_name": "Time Range", + "dynamic": false, + "info": "The time range back from the current date to include in the search results.", + "name": "time_range", + "options": ["day", "week", "month", "year"], + "options_metadata": [], + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "type": "str" + }, "tools_metadata": { "_input_type": "TableInput", "advanced": false, @@ -2452,10 +2293,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -2468,6 +2306,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": false, "name": "name", "sortable": false, "type": "text" @@ -2479,6 +2318,7 @@ "edit_mode": "popover", "filterable": false, "formatter": "text", + "hidden": false, "name": "description", "sortable": false, "type": "text" @@ -2490,6 +2330,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": true, "name": "tags", "sortable": false, "type": "text" @@ -2505,17 +2346,13 @@ "value": [ { "description": "fetch_content(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", - "name": "None-fetch_content", - "tags": [ - "None-fetch_content" - ] + "name": "TavilySearchComponent-fetch_content", + "tags": ["TavilySearchComponent-fetch_content"] }, { "description": "fetch_content_text(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", - "name": "None-fetch_content_text", - "tags": [ - "None-fetch_content_text" - ] + "name": "TavilySearchComponent-fetch_content_text", + "tags": ["TavilySearchComponent-fetch_content_text"] } ] }, @@ -2523,14 +2360,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Topic", "dynamic": false, "info": "The category of the search.", "name": "topic", - "options": [ - "general", - "news" - ], + "options": ["general", "news"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2547,10 +2383,10 @@ "type": "TavilySearchComponent" }, "dragging": false, - "id": "TavilySearchComponent-h8yAo", + "id": "TavilySearchComponent-mnzRD", "measured": { - "height": 489, - "width": 360 + "height": 435, + "width": 320 }, "position": { "x": 5176.638828210268, @@ -2561,12 +2397,9 @@ }, { "data": { - "id": "OpenAIModel-N7jW7", + "id": "OpenAIModel-qQ00F", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2605,9 +2438,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2616,14 +2447,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2637,9 +2464,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2674,9 +2499,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2858,9 +2681,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2929,10 +2750,10 @@ "type": "OpenAIModel" }, "dragging": false, - "id": "OpenAIModel-N7jW7", + "id": "OpenAIModel-qQ00F", "measured": { - "height": 734, - "width": 360 + "height": 653, + "width": 320 }, "position": { "x": 6411.984293767987, @@ -2943,12 +2764,9 @@ }, { "data": { - "id": "OpenAIModel-DdNth", + "id": "OpenAIModel-vHqv4", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2987,9 +2805,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2998,14 +2814,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -3019,9 +2831,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -3056,9 +2866,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3240,9 +3048,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3311,10 +3117,10 @@ "type": "OpenAIModel" }, "dragging": false, - "id": "OpenAIModel-DdNth", + "id": "OpenAIModel-vHqv4", "measured": { - "height": 734, - "width": 360 + "height": 653, + "width": 320 }, "position": { "x": 7206.924894456788, @@ -3325,9 +3131,9 @@ } ], "viewport": { - "x": -3779.2997720436124, - "y": -2148.895244030505, - "zoom": 0.7375171608018025 + "x": -1398.4765287647906, + "y": -468.6581744031994, + "zoom": 0.3251044072386861 } }, "description": " Create engaging Instagram posts with AI-generated content and image prompts, streamlining social media content creation.", @@ -3338,9 +3144,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Instagram Copywriter", - "tags": [ - "content-generation", - "chatbots", - "agents" - ] -} \ No newline at end of file + "tags": ["content-generation", "chatbots", "agents"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/LoopTemplate.json b/src/backend/base/langflow/initial_setup/starter_projects/LoopTemplate.json index de4abf151..a351a5062 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/LoopTemplate.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/LoopTemplate.json @@ -9,16 +9,12 @@ "dataType": "ArXivComponent", "id": "ArXivComponent-LChQN", "name": "papers", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "LoopComponent-3vpc1", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -36,16 +32,12 @@ "dataType": "LoopComponent", "id": "LoopComponent-3vpc1", "name": "item", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-Pf12J", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -63,16 +55,12 @@ "dataType": "ParseData", "id": "ParseData-Pf12J", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "AnthropicModel-beO6B", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,16 +78,12 @@ "dataType": "AnthropicModel", "id": "AnthropicModel-beO6B", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "message", "id": "MessagetoData-QRSBb", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -117,17 +101,13 @@ "dataType": "MessagetoData", "id": "MessagetoData-QRSBb", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "dataType": "LoopComponent", "id": "LoopComponent-3vpc1", "name": "item", - "output_types": [ - "Data" - ] + "output_types": ["Data"] } }, "id": "xy-edge__MessagetoData-QRSBb{œdataTypeœ:œMessagetoDataœ,œidœ:œMessagetoData-QRSBbœ,œnameœ:œdataœ,œoutput_typesœ:[œDataœ]}-LoopComponent-3vpc1{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-3vpc1œ,œnameœ:œitemœ,œoutput_typesœ:[œDataœ]}", @@ -144,16 +124,12 @@ "dataType": "LoopComponent", "id": "LoopComponent-3vpc1", "name": "done", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-igEkj", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -171,16 +147,12 @@ "dataType": "ParseData", "id": "ParseData-igEkj", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-UZgon", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -198,16 +170,12 @@ "dataType": "ChatInput", "id": "ChatInput-m10vc", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "search_query", "id": "ArXivComponent-LChQN", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -223,9 +191,7 @@ "data": { "id": "ArXivComponent-LChQN", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -233,11 +199,7 @@ "display_name": "arXiv", "documentation": "", "edited": false, - "field_order": [ - "search_query", - "search_type", - "max_results" - ], + "field_order": ["search_query", "search_type", "max_results"], "frozen": false, "icon": "arXiv", "legacy": false, @@ -254,9 +216,7 @@ "name": "papers", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -305,9 +265,7 @@ "display_name": "Search Query", "dynamic": false, "info": "The search query for arXiv papers (e.g., 'quantum computing')", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -331,13 +289,7 @@ "dynamic": false, "info": "The field to search in", "name": "search_type", - "options": [ - "all", - "title", - "abstract", - "author", - "cat" - ], + "options": ["all", "title", "abstract", "author", "cat"], "options_metadata": [], "placeholder": "", "required": false, @@ -371,9 +323,7 @@ "data": { "id": "LoopComponent-3vpc1", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "logic", "conditional_paths": [], @@ -382,9 +332,7 @@ "display_name": "Loop", "documentation": "", "edited": false, - "field_order": [ - "data" - ], + "field_order": ["data"], "frozen": false, "icon": "infinity", "key": "LoopComponent", @@ -402,9 +350,7 @@ "name": "item", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -415,9 +361,7 @@ "name": "done", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -449,9 +393,7 @@ "display_name": "Data", "dynamic": false, "info": "The initial list of Data objects to iterate over.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": false, "list_add_label": "Add More", "name": "data", @@ -488,10 +430,7 @@ "data": { "id": "ParseData-Pf12J", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "category": "processing", "conditional_paths": [], @@ -500,11 +439,7 @@ "display_name": "Data to Message", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "key": "ParseData", @@ -522,9 +457,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -535,9 +468,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -569,9 +500,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "list_add_label": "Add More", "name": "data", @@ -610,9 +539,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -651,10 +578,7 @@ "data": { "id": "AnthropicModel-beO6B", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -693,9 +617,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -704,14 +626,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -725,9 +643,7 @@ "display_name": "Anthropic API Key", "dynamic": false, "info": "Your Anthropic API key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -737,7 +653,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "ANTHROPIC_API_KEY" }, "base_url": { "_input_type": "MessageTextInput", @@ -745,9 +661,7 @@ "display_name": "Anthropic API URL", "dynamic": false, "info": "Endpoint of the Anthropic API. Defaults to 'https://api.anthropic.com' if not specified.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -787,9 +701,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -858,9 +770,7 @@ "display_name": "Prefill", "dynamic": false, "info": "Prefill text to guide the model's response.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -899,9 +809,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -987,9 +895,7 @@ "data": { "id": "MessagetoData-QRSBb", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": true, "category": "processing", "conditional_paths": [], @@ -998,9 +904,7 @@ "display_name": "Message to Data", "documentation": "", "edited": false, - "field_order": [ - "message" - ], + "field_order": ["message"], "frozen": false, "icon": "message-square-share", "key": "MessagetoData", @@ -1018,9 +922,7 @@ "name": "data", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1052,9 +954,7 @@ "display_name": "Message", "dynamic": false, "info": "The Message object to convert to a Data object", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1092,10 +992,7 @@ "data": { "id": "ParseData-igEkj", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "category": "processing", "conditional_paths": [], @@ -1104,11 +1001,7 @@ "display_name": "Data to Message", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "key": "ParseData", @@ -1126,9 +1019,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1139,9 +1030,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1173,9 +1062,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "list_add_label": "Add More", "name": "data", @@ -1214,9 +1101,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1255,9 +1140,7 @@ "data": { "id": "ChatOutput-UZgon", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1292,9 +1175,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1307,9 +1188,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1330,9 +1209,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1371,9 +1248,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1394,9 +1269,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1420,10 +1293,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "options_metadata": [], "placeholder": "", "required": false, @@ -1440,9 +1310,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1463,9 +1331,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1504,9 +1370,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1544,9 +1408,7 @@ "data": { "id": "ChatInput-m10vc", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1581,9 +1443,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1596,9 +1456,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1619,9 +1477,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1728,10 +1584,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "options_metadata": [], "placeholder": "", "required": false, @@ -1748,9 +1601,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1771,9 +1622,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1812,9 +1661,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1919,8 +1766,5 @@ "is_component": false, "last_tested_version": "1.1.5", "name": "Research Translation Loop", - "tags": [ - "chatbots", - "content-generation" - ] -} \ No newline at end of file + "tags": ["chatbots", "content-generation"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Market Research.json b/src/backend/base/langflow/initial_setup/starter_projects/Market Research.json index 8b1255c97..f121e0873 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Market Research.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Market Research.json @@ -3,167 +3,145 @@ "edges": [ { "animated": false, - "className": "", + "className": "not-running", "data": { "sourceHandle": { "dataType": "StructuredOutputComponent", - "id": "StructuredOutputComponent-y5YEE", + "id": "StructuredOutputComponent-EguHE", "name": "structured_output", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", - "id": "ParseData-8KK2E", - "inputTypes": [ - "Data" - ], + "id": "ParseData-68wKj", + "inputTypes": ["Data"], "type": "other" } }, - "id": "reactflow__edge-StructuredOutputComponent-y5YEE{œdataTypeœ:œStructuredOutputComponentœ,œidœ:œStructuredOutputComponent-y5YEEœ,œnameœ:œstructured_outputœ,œoutput_typesœ:[œDataœ]}-ParseData-8KK2E{œfieldNameœ:œdataœ,œidœ:œParseData-8KK2Eœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}", + "id": "reactflow__edge-StructuredOutputComponent-EguHE{œdataTypeœ:œStructuredOutputComponentœ,œidœ:œStructuredOutputComponent-EguHEœ,œnameœ:œstructured_outputœ,œoutput_typesœ:[œDataœ]}-ParseData-68wKj{œfieldNameœ:œdataœ,œidœ:œParseData-68wKjœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}", "selected": false, - "source": "StructuredOutputComponent-y5YEE", - "sourceHandle": "{œdataTypeœ: œStructuredOutputComponentœ, œidœ: œStructuredOutputComponent-y5YEEœ, œnameœ: œstructured_outputœ, œoutput_typesœ: [œDataœ]}", - "target": "ParseData-8KK2E", - "targetHandle": "{œfieldNameœ: œdataœ, œidœ: œParseData-8KK2Eœ, œinputTypesœ: [œDataœ], œtypeœ: œotherœ}" + "source": "StructuredOutputComponent-EguHE", + "sourceHandle": "{œdataTypeœ: œStructuredOutputComponentœ, œidœ: œStructuredOutputComponent-EguHEœ, œnameœ: œstructured_outputœ, œoutput_typesœ: [œDataœ]}", + "target": "ParseData-68wKj", + "targetHandle": "{œfieldNameœ: œdataœ, œidœ: œParseData-68wKjœ, œinputTypesœ: [œDataœ], œtypeœ: œotherœ}" }, { "animated": false, - "className": "", + "className": "not-running", "data": { "sourceHandle": { "dataType": "ParseData", - "id": "ParseData-8KK2E", + "id": "ParseData-68wKj", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "ChatOutput-gEsYh", - "inputTypes": [ - "Message" - ], + "id": "ChatOutput-VA5gt", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-ParseData-8KK2E{œdataTypeœ:œParseDataœ,œidœ:œParseData-8KK2Eœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-gEsYh{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-gEsYhœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-ParseData-68wKj{œdataTypeœ:œParseDataœ,œidœ:œParseData-68wKjœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-VA5gt{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-VA5gtœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, - "source": "ParseData-8KK2E", - "sourceHandle": "{œdataTypeœ: œParseDataœ, œidœ: œParseData-8KK2Eœ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}", - "target": "ChatOutput-gEsYh", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-gEsYhœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "source": "ParseData-68wKj", + "sourceHandle": "{œdataTypeœ: œParseDataœ, œidœ: œParseData-68wKjœ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}", + "target": "ChatOutput-VA5gt", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-VA5gtœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, - "className": "", + "className": "ran", "data": { "sourceHandle": { "dataType": "ChatInput", - "id": "ChatInput-vuvZ4", + "id": "ChatInput-FDuyL", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Agent-lyqby", - "inputTypes": [ - "Message" - ], + "id": "Agent-rqbrW", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-ChatInput-vuvZ4{œdataTypeœ:œChatInputœ,œidœ:œChatInput-vuvZ4œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-lyqby{œfieldNameœ:œinput_valueœ,œidœ:œAgent-lyqbyœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-ChatInput-FDuyL{œdataTypeœ:œChatInputœ,œidœ:œChatInput-FDuyLœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-rqbrW{œfieldNameœ:œinput_valueœ,œidœ:œAgent-rqbrWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, - "source": "ChatInput-vuvZ4", - "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-vuvZ4œ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-lyqby", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-lyqbyœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "source": "ChatInput-FDuyL", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-FDuyLœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-rqbrW", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-rqbrWœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { - "animated": false, - "className": "", + "animated": true, + "className": "running", "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-lyqby", + "id": "Agent-rqbrW", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "StructuredOutputComponent-y5YEE", - "inputTypes": [ - "Message" - ], + "id": "StructuredOutputComponent-EguHE", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Agent-lyqby{œdataTypeœ:œAgentœ,œidœ:œAgent-lyqbyœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-StructuredOutputComponent-y5YEE{œfieldNameœ:œinput_valueœ,œidœ:œStructuredOutputComponent-y5YEEœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-Agent-rqbrW{œdataTypeœ:œAgentœ,œidœ:œAgent-rqbrWœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-StructuredOutputComponent-EguHE{œfieldNameœ:œinput_valueœ,œidœ:œStructuredOutputComponent-EguHEœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, - "source": "Agent-lyqby", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-lyqbyœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "StructuredOutputComponent-y5YEE", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œStructuredOutputComponent-y5YEEœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "source": "Agent-rqbrW", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-rqbrWœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "StructuredOutputComponent-EguHE", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œStructuredOutputComponent-EguHEœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, - "className": "", + "className": "ran", "data": { "sourceHandle": { "dataType": "TavilySearchComponent", - "id": "TavilySearchComponent-Gv4zn", + "id": "TavilySearchComponent-EoHje", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-lyqby", - "inputTypes": [ - "Tool" - ], + "id": "Agent-rqbrW", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-TavilySearchComponent-Gv4zn{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-Gv4znœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-lyqby{œfieldNameœ:œtoolsœ,œidœ:œAgent-lyqbyœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "TavilySearchComponent-Gv4zn", - "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-Gv4znœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-lyqby", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-lyqbyœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-TavilySearchComponent-EoHje{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-EoHjeœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-rqbrW{œfieldNameœ:œtoolsœ,œidœ:œAgent-rqbrWœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "TavilySearchComponent-EoHje", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-EoHjeœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-rqbrW", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-rqbrWœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { + "animated": false, + "className": "not-running", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-Yo7s2", + "id": "OpenAIModel-aSzMF", "name": "model_output", - "output_types": [ - "LanguageModel" - ] + "output_types": ["LanguageModel"] }, "targetHandle": { "fieldName": "llm", - "id": "StructuredOutputComponent-y5YEE", - "inputTypes": [ - "LanguageModel" - ], + "id": "StructuredOutputComponent-EguHE", + "inputTypes": ["LanguageModel"], "type": "other" } }, - "id": "xy-edge__OpenAIModel-Yo7s2{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-Yo7s2œ,œnameœ:œmodel_outputœ,œoutput_typesœ:[œLanguageModelœ]}-StructuredOutputComponent-y5YEE{œfieldNameœ:œllmœ,œidœ:œStructuredOutputComponent-y5YEEœ,œinputTypesœ:[œLanguageModelœ],œtypeœ:œotherœ}", - "source": "OpenAIModel-Yo7s2", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-Yo7s2œ, œnameœ: œmodel_outputœ, œoutput_typesœ: [œLanguageModelœ]}", - "target": "StructuredOutputComponent-y5YEE", - "targetHandle": "{œfieldNameœ: œllmœ, œidœ: œStructuredOutputComponent-y5YEEœ, œinputTypesœ: [œLanguageModelœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-OpenAIModel-aSzMF{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-aSzMFœ,œnameœ:œmodel_outputœ,œoutput_typesœ:[œLanguageModelœ]}-StructuredOutputComponent-EguHE{œfieldNameœ:œllmœ,œidœ:œStructuredOutputComponent-EguHEœ,œinputTypesœ:[œLanguageModelœ],œtypeœ:œotherœ}", + "source": "OpenAIModel-aSzMF", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-aSzMFœ, œnameœ: œmodel_outputœ, œoutput_typesœ: [œLanguageModelœ]}", + "target": "StructuredOutputComponent-EguHE", + "targetHandle": "{œfieldNameœ: œllmœ, œidœ: œStructuredOutputComponent-EguHEœ, œinputTypesœ: [œLanguageModelœ], œtypeœ: œotherœ}" } ], "nodes": [ @@ -171,11 +149,9 @@ "data": { "description": "Get chat inputs from the Playground.", "display_name": "Chat Input", - "id": "ChatInput-vuvZ4", + "id": "ChatInput-FDuyL", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -209,9 +185,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -224,9 +198,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -245,9 +217,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -348,10 +318,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -366,9 +333,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -387,9 +352,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -424,9 +387,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -445,10 +406,10 @@ }, "dragging": false, "height": 234, - "id": "ChatInput-vuvZ4", + "id": "ChatInput-FDuyL", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 472.38251755471583, @@ -466,11 +427,9 @@ "data": { "description": "Display a chat message in the Playground.", "display_name": "Chat Output", - "id": "ChatOutput-gEsYh", + "id": "ChatOutput-VA5gt", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -504,9 +463,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -519,9 +476,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -541,9 +496,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -581,9 +534,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -603,9 +554,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -626,10 +575,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -645,9 +591,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -667,9 +611,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -705,9 +647,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -728,10 +668,10 @@ }, "dragging": false, "height": 234, - "id": "ChatOutput-gEsYh", + "id": "ChatOutput-VA5gt", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 2518.282039019285, @@ -747,7 +687,7 @@ }, { "data": { - "id": "note-siDHB", + "id": "note-nklZw", "node": { "description": "The StructuredOutputComponent, when utilized with our company information schema, performs the following functions:\n\n1. Accepts an input query regarding a company.\n2. Employs a Language Model (LLM) to analyze the query.\n3. Instructs the LLM to generate a structured response adhering to the predefined schema:\n - Domain\n - LinkedIn URL\n - Cheapest Plan\n - Has Free Trial\n - Has Enterprise Plan\n - Has API\n - Market\n - Pricing Tiers\n - Key Features\n - Target Industries\n\n4. Validates the LLM output against this schema.\n5. Returns a Data object containing the company information structured according to the schema.\n\nIn essence, this component transforms a free-text query about a company into a structured, consistent dataset, facilitating subsequent analysis and application of the information.", "display_name": "", @@ -760,10 +700,10 @@ }, "dragging": false, "height": 324, - "id": "note-siDHB", + "id": "note-nklZw", "measured": { "height": 324, - "width": 324 + "width": 325 }, "position": { "x": 2089.5869930853464, @@ -784,7 +724,7 @@ }, { "data": { - "id": "note-gjsCT", + "id": "note-PXFPj", "node": { "description": "PURPOSE:\nConverts unstructured company research into standardized JSON format\n\nKEY FUNCTIONS:\n- Extracts specific business data points\n- Validates and formats information\n- Ensures data consistency\n\nINPUT:\n- Raw company research data\n\nOUTPUT:\nStructured JSON with:\n- Domain information\n- Social links\n- Pricing details\n- Feature availability\n- Market classification\n- Product features\n- Industry focus\n\nRULES:\n1. Uses strict boolean values\n2. Standardizes pricing formats\n3. Validates market categories\n4. Handles missing data consistently", "display_name": "", @@ -797,10 +737,10 @@ }, "dragging": false, "height": 324, - "id": "note-gjsCT", + "id": "note-PXFPj", "measured": { "height": 324, - "width": 324 + "width": 325 }, "position": { "x": 1237.6627823432912, @@ -821,7 +761,7 @@ }, { "data": { - "id": "note-IftyY", + "id": "note-TgJSC", "node": { "description": "# Market Research\nThis flow helps you gather comprehensive information about companies for sales and business intelligence purposes.\n\n## Instructions\n\n1. Enter Company Name\n - In the Chat Input node, type the name of the company you want to research\n - Example inputs: \"Salesforce.com\", \"Shopify\", \"Zoom Video Communications\"\n\n2. Initiate Research\n - The Agent will use the Tavily AI Search tool to gather information\n - It will focus on key areas like pricing, features, and market positioning\n\n3. Review Structured Output\n - The flow will generate a structured JSON output with standardized fields\n - This includes domain, LinkedIn URL, pricing details, and key features\n\n4. Examine Formatted Results\n - The Parse Data component will convert the JSON into a readable format\n - You'll see a comprehensive company profile with organized sections\n\n5. Analyze and Use Data\n - Use the generated information for sales prospecting, competitive analysis, or market research\n - The structured format allows for easy comparison between different companies\n\nRemember: Always verify critical information from official sources before making business decisions! 🔍💼", "display_name": "", @@ -834,10 +774,10 @@ }, "dragging": false, "height": 324, - "id": "note-IftyY", + "id": "note-TgJSC", "measured": { "height": 324, - "width": 324 + "width": 325 }, "position": { "x": 244.92297036777086, @@ -860,11 +800,9 @@ "data": { "description": "Transforms LLM responses into **structured data formats**. Ideal for extracting specific information or creating consistent outputs.", "display_name": "Structured Output", - "id": "StructuredOutputComponent-y5YEE", + "id": "StructuredOutputComponent-EguHE", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -892,9 +830,7 @@ "method": "build_structured_output", "name": "structured_output", "selected": "Data", - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -925,9 +861,7 @@ "display_name": "Input message", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -947,9 +881,7 @@ "display_name": "Language Model", "dynamic": false, "info": "The language model to use to generate the structured output.", - "input_types": [ - "LanguageModel" - ], + "input_types": ["LanguageModel"], "list": false, "name": "llm", "placeholder": "", @@ -1120,10 +1052,10 @@ }, "dragging": false, "height": 541, - "id": "StructuredOutputComponent-y5YEE", + "id": "StructuredOutputComponent-EguHE", "measured": { "height": 541, - "width": 360 + "width": 320 }, "position": { "x": 1716.7237308033855, @@ -1139,11 +1071,9 @@ }, { "data": { - "id": "ParseData-8KK2E", + "id": "ParseData-68wKj", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "category": "helpers", "conditional_paths": [], @@ -1152,11 +1082,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "key": "ParseData", @@ -1173,9 +1099,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1186,9 +1110,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -1219,9 +1141,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -1256,9 +1176,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1278,10 +1196,10 @@ }, "dragging": false, "height": 302, - "id": "ParseData-8KK2E", + "id": "ParseData-68wKj", "measured": { "height": 302, - "width": 360 + "width": 320 }, "position": { "x": 2139.05558520377, @@ -1299,11 +1217,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Agent", - "id": "Agent-lyqby", + "id": "Agent-rqbrW", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1354,9 +1270,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1385,9 +1299,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1438,9 +1350,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1449,7 +1359,7 @@ "show": true, "title_case": false, "type": "str", - "value": "OPENAI_API_KEY" + "value": "TAVILY_API_KEY" }, "code": { "advanced": true, @@ -1491,9 +1401,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1585,9 +1493,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -1681,10 +1587,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -1718,11 +1621,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -1738,9 +1637,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1760,9 +1657,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1782,9 +1677,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1821,9 +1714,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1862,9 +1753,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -1898,10 +1787,10 @@ }, "dragging": false, "height": 650, - "id": "Agent-lyqby", + "id": "Agent-rqbrW", "measured": { "height": 650, - "width": 360 + "width": 320 }, "position": { "x": 1287.5681517817056, @@ -1913,7 +1802,7 @@ }, { "data": { - "id": "note-Z3HC2", + "id": "note-KpRgA", "node": { "description": "# 🔑 Tavily AI Search Needs API Key\n\nYou can get 1000 searches/month free [here](https://tavily.com/) ", "display_name": "", @@ -1926,10 +1815,10 @@ }, "dragging": false, "height": 324, - "id": "note-Z3HC2", + "id": "note-KpRgA", "measured": { "height": 324, - "width": 324 + "width": 325 }, "position": { "x": 878.7898510090017, @@ -1945,14 +1834,12 @@ }, { "data": { - "id": "TavilySearchComponent-Gv4zn", + "description": "**Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", + "display_name": "Tavily AI Search", + "id": "TavilySearchComponent-EoHje", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, - "category": "tools", "conditional_paths": [], "custom_fields": {}, "description": "**Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", @@ -1964,15 +1851,14 @@ "query", "search_depth", "topic", + "time_range", "max_results", "include_images", "include_answer" ], "frozen": false, "icon": "TavilyIcon", - "key": "TavilySearchComponent", "legacy": false, - "lf_version": "1.1.1", "metadata": {}, "minimized": false, "output_types": [], @@ -1986,14 +1872,12 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "tool_mode": true, + "types": ["Tool"], "value": "__UNDEFINED__" } ], "pinned": false, - "score": 0.0075846556637275304, "template": { "_type": "Component", "api_key": { @@ -2002,9 +1886,7 @@ "display_name": "Tavily API Key", "dynamic": false, "info": "Your Tavily API Key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2013,7 +1895,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "TAVILY_API_KEY" }, "code": { "advanced": true, @@ -2031,7 +1913,7 @@ "show": true, "title_case": false, "type": "code", - "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" + "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n DropdownInput(\n name=\"time_range\",\n display_name=\"Time Range\",\n info=\"The time range back from the current date to include in the search results.\",\n options=[\"day\", \"week\", \"month\", \"year\"],\n value=None,\n advanced=True,\n combobox=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n \"time_range\": self.time_range,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" }, "include_answer": { "_input_type": "BoolInput", @@ -2093,9 +1975,7 @@ "display_name": "Search Query", "dynamic": false, "info": "The search query you want to execute with Tavily.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2114,14 +1994,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Depth", "dynamic": false, "info": "The depth of the search.", "name": "search_depth", - "options": [ - "basic", - "advanced" - ], + "options": ["basic", "advanced"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2131,6 +2010,25 @@ "type": "str", "value": "advanced" }, + "time_range": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": true, + "dialog_inputs": {}, + "display_name": "Time Range", + "dynamic": false, + "info": "The time range back from the current date to include in the search results.", + "name": "time_range", + "options": ["day", "week", "month", "year"], + "options_metadata": [], + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "type": "str" + }, "tools_metadata": { "_input_type": "TableInput", "advanced": false, @@ -2156,10 +2054,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -2172,6 +2067,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": false, "name": "name", "sortable": false, "type": "text" @@ -2183,6 +2079,7 @@ "edit_mode": "popover", "filterable": false, "formatter": "text", + "hidden": false, "name": "description", "sortable": false, "type": "text" @@ -2194,6 +2091,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": true, "name": "tags", "sortable": false, "type": "text" @@ -2209,17 +2107,13 @@ "value": [ { "description": "fetch_content(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", - "name": "None-fetch_content", - "tags": [ - "None-fetch_content" - ] + "name": "TavilySearchComponent-fetch_content", + "tags": ["TavilySearchComponent-fetch_content"] }, { "description": "fetch_content_text(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", - "name": "None-fetch_content_text", - "tags": [ - "None-fetch_content_text" - ] + "name": "TavilySearchComponent-fetch_content_text", + "tags": ["TavilySearchComponent-fetch_content_text"] } ] }, @@ -2227,14 +2121,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Topic", "dynamic": false, "info": "The category of the search.", "name": "topic", - "options": [ - "general", - "news" - ], + "options": ["general", "news"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2251,10 +2144,10 @@ "type": "TavilySearchComponent" }, "dragging": false, - "id": "TavilySearchComponent-Gv4zn", + "id": "TavilySearchComponent-EoHje", "measured": { - "height": 489, - "width": 360 + "height": 435, + "width": 320 }, "position": { "x": 875.7686789989679, @@ -2265,12 +2158,9 @@ }, { "data": { - "id": "OpenAIModel-Yo7s2", + "id": "OpenAIModel-aSzMF", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2309,9 +2199,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2320,14 +2208,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2341,9 +2225,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2378,9 +2260,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2562,9 +2442,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2633,23 +2511,23 @@ "type": "OpenAIModel" }, "dragging": false, - "id": "OpenAIModel-Yo7s2", + "id": "OpenAIModel-aSzMF", "measured": { - "height": 734, - "width": 360 + "height": 653, + "width": 320 }, "position": { "x": 1718.9581068990763, "y": 1081.137733422722 }, - "selected": true, + "selected": false, "type": "genericNode" } ], "viewport": { - "x": -84.19731102880883, - "y": -179.36393502789429, - "zoom": 0.5492417618766154 + "x": -55.02773146550817, + "y": 192.3971314158145, + "zoom": 0.4774432638923554 } }, "description": "Researches companies, extracts key business data, and presents structured information for efficient analysis. ", @@ -2660,8 +2538,5 @@ "is_component": false, "last_tested_version": "1.1.1", "name": "Market Research", - "tags": [ - "assistants", - "agents" - ] -} \ No newline at end of file + "tags": ["assistants", "agents"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json b/src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json index d9b3f0553..8c154dfe6 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json @@ -8,17 +8,12 @@ "dataType": "Memory", "id": "Memory-gWJrq", "name": "messages_text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "memory", "id": "Prompt-yhdMP", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -36,16 +31,12 @@ "dataType": "ChatInput", "id": "ChatInput-PEO9d", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-63o3Q", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -63,16 +54,12 @@ "dataType": "Prompt", "id": "Prompt-yhdMP", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-63o3Q", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,16 +77,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-63o3Q", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-BIXzI", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -116,9 +99,7 @@ "data": { "id": "ChatInput-PEO9d", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -152,9 +133,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -167,9 +146,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -189,9 +166,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -294,10 +269,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -313,9 +285,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -335,9 +305,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -373,9 +341,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -419,9 +385,7 @@ "display_name": "Chat Output", "id": "ChatOutput-BIXzI", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -455,9 +419,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -470,9 +432,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -492,9 +452,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -532,9 +490,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -554,9 +510,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -577,10 +531,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -596,9 +547,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -618,9 +567,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -656,9 +603,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -767,10 +712,7 @@ "data": { "id": "Memory-gWJrq", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -802,9 +744,7 @@ "name": "messages", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -815,9 +755,7 @@ "name": "messages_text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -848,9 +786,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -885,10 +821,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -906,11 +839,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -926,9 +855,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -948,9 +875,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -970,9 +895,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1015,24 +938,18 @@ "data": { "id": "Prompt-yhdMP", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "memory" - ] + "template": ["memory"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "full_path": null, "icon": "prompts", @@ -1053,9 +970,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1088,10 +1003,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1126,9 +1038,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1170,10 +1080,7 @@ "data": { "id": "OpenAIModel-63o3Q", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1212,9 +1119,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1223,14 +1128,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1244,9 +1145,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1255,7 +1154,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1281,9 +1180,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1465,9 +1362,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1563,9 +1458,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Memory Chatbot", - "tags": [ - "chatbots", - "openai", - "assistants" - ] -} \ No newline at end of file + "tags": ["chatbots", "openai", "assistants"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json b/src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json index e350b33d4..dcbe13a34 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json @@ -9,16 +9,12 @@ "dataType": "Prompt", "id": "Prompt-ysecC", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "StructuredOutput-TArXO", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -36,16 +32,12 @@ "dataType": "StructuredOutput", "id": "StructuredOutput-TArXO", "name": "structured_output", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-x7Rgx", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -63,16 +55,12 @@ "dataType": "ParseData", "id": "ParseData-sGhWo", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "resume", "id": "Prompt-ysecC", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,16 +78,12 @@ "dataType": "AnthropicModel", "id": "AnthropicModel-sHFTc", "name": "model_output", - "output_types": [ - "LanguageModel" - ] + "output_types": ["LanguageModel"] }, "targetHandle": { "fieldName": "llm", "id": "StructuredOutput-TArXO", - "inputTypes": [ - "LanguageModel" - ], + "inputTypes": ["LanguageModel"], "type": "other" } }, @@ -117,16 +101,12 @@ "dataType": "ParseData", "id": "ParseData-x7Rgx", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "AnthropicModel-IrjAe", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -144,16 +124,12 @@ "dataType": "TextInput", "id": "TextInput-CPTOR", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "AnthropicModel-IrjAe", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -171,16 +147,12 @@ "dataType": "AnthropicModel", "id": "AnthropicModel-IrjAe", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-d1tmJ", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -197,16 +169,12 @@ "dataType": "File", "id": "File-JgIx7", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", "id": "ParseData-sGhWo", - "inputTypes": [ - "Data" - ], + "inputTypes": ["Data"], "type": "other" } }, @@ -222,25 +190,18 @@ "data": { "id": "Prompt-ysecC", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "resume" - ] + "template": ["resume"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, "error": null, - "field_order": [ - "template", - "tool_placeholder" - ], + "field_order": ["template", "tool_placeholder"], "frozen": false, "full_path": null, "icon": "prompts", @@ -262,9 +223,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -297,9 +256,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -335,9 +292,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -375,10 +330,7 @@ "data": { "id": "ParseData-sGhWo", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -386,11 +338,7 @@ "display_name": "Data to Message", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -407,9 +355,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -420,9 +366,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -453,9 +397,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "list_add_label": "Add More", "name": "data", @@ -494,9 +436,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -535,9 +475,7 @@ "data": { "id": "StructuredOutput-TArXO", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -569,9 +507,7 @@ "name": "structured_output", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -602,9 +538,7 @@ "display_name": "Input Message", "dynamic": false, "info": "The input message to the language model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -625,9 +559,7 @@ "display_name": "Language Model", "dynamic": false, "info": "The language model to use to generate the structured output.", - "input_types": [ - "LanguageModel" - ], + "input_types": ["LanguageModel"], "list": false, "list_add_label": "Add More", "name": "llm", @@ -846,10 +778,7 @@ "data": { "id": "ParseData-x7Rgx", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -857,11 +786,7 @@ "display_name": "Data to Message", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -878,9 +803,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -891,9 +814,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -924,9 +845,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "list_add_label": "Add More", "name": "data", @@ -965,9 +884,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1006,9 +923,7 @@ "data": { "id": "TextInput-CPTOR", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "category": "inputs", "conditional_paths": [], @@ -1017,9 +932,7 @@ "display_name": "Text Input", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "key": "TextInput", @@ -1037,9 +950,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1071,9 +982,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1112,10 +1021,7 @@ "data": { "id": "AnthropicModel-sHFTc", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1154,9 +1060,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1165,14 +1069,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1186,10 +1086,8 @@ "display_name": "Anthropic API Key", "dynamic": false, "info": "Your Anthropic API key.", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -1198,7 +1096,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "ANTHROPIC_API_KEY" }, "base_url": { "_input_type": "MessageTextInput", @@ -1206,9 +1104,7 @@ "display_name": "Anthropic API URL", "dynamic": false, "info": "Endpoint of the Anthropic API. Defaults to 'https://api.anthropic.com' if not specified.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1248,9 +1144,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1319,9 +1213,7 @@ "display_name": "Prefill", "dynamic": false, "info": "Prefill text to guide the model's response.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1360,9 +1252,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1448,10 +1338,7 @@ "data": { "id": "AnthropicModel-IrjAe", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1490,9 +1377,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1501,14 +1386,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1522,10 +1403,8 @@ "display_name": "Anthropic API Key", "dynamic": false, "info": "Your Anthropic API key.", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -1534,7 +1413,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "ANTHROPIC_API_KEY" }, "base_url": { "_input_type": "MessageTextInput", @@ -1542,9 +1421,7 @@ "display_name": "Anthropic API URL", "dynamic": false, "info": "Endpoint of the Anthropic API. Defaults to 'https://api.anthropic.com' if not specified.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1584,9 +1461,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1655,9 +1530,7 @@ "display_name": "Prefill", "dynamic": false, "info": "Prefill text to guide the model's response.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1696,9 +1569,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1784,9 +1655,7 @@ "data": { "id": "ChatOutput-d1tmJ", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "category": "outputs", "conditional_paths": [], @@ -1823,9 +1692,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1839,9 +1706,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1862,9 +1727,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1903,9 +1766,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1926,9 +1787,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1952,10 +1811,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "options_metadata": [], "placeholder": "", "required": false, @@ -1972,9 +1828,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1995,9 +1849,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2036,9 +1888,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2076,9 +1926,7 @@ "data": { "id": "File-JgIx7", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "data", "conditional_paths": [], @@ -2114,9 +1962,7 @@ "required_inputs": [], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -2184,10 +2030,7 @@ "display_name": "Server File Path", "dynamic": false, "info": "Data object with a 'file_path' property pointing to server file or a Message object with a path to the file. Supercedes 'Path' but supports same file types.", - "input_types": [ - "Data", - "Message" - ], + "input_types": ["Data", "Message"], "list": true, "list_add_label": "Add More", "name": "file_path", @@ -2491,8 +2334,5 @@ "is_component": false, "last_tested_version": "1.1.4", "name": "Portfolio Website Code Generator", - "tags": [ - "chatbots", - "coding" - ] -} \ No newline at end of file + "tags": ["chatbots", "coding"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json b/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json index d55f8e39d..99e7ccb41 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json @@ -7,28 +7,23 @@ "data": { "sourceHandle": { "dataType": "ChatInput", - "id": "ChatInput-hasDY", + "id": "ChatInput-0hxgs", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Prompt-GxcHe", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-xI9hs", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-ChatInput-hasDY{œdataTypeœ:œChatInputœ,œidœ:œChatInput-hasDYœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-GxcHe{œfieldNameœ:œinput_valueœ,œidœ:œPrompt-GxcHeœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-ChatInput-0hxgs{œdataTypeœ:œChatInputœ,œidœ:œChatInput-0hxgsœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-xI9hs{œfieldNameœ:œinput_valueœ,œidœ:œPrompt-xI9hsœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, - "source": "ChatInput-hasDY", - "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-hasDYœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-GxcHe", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œPrompt-GxcHeœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "source": "ChatInput-0hxgs", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-0hxgsœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-xI9hs", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œPrompt-xI9hsœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -36,27 +31,23 @@ "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-oCyQS", + "id": "Prompt-Zc4Af", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Agent-7qOlO", - "inputTypes": [ - "Message" - ], + "id": "Agent-Gbt8L", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-oCyQS{œdataTypeœ:œPromptœ,œidœ:œPrompt-oCyQSœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-7qOlO{œfieldNameœ:œinput_valueœ,œidœ:œAgent-7qOlOœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-Prompt-Zc4Af{œdataTypeœ:œPromptœ,œidœ:œPrompt-Zc4Afœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-Gbt8L{œfieldNameœ:œinput_valueœ,œidœ:œAgent-Gbt8Lœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, - "source": "Prompt-oCyQS", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-oCyQSœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-7qOlO", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-7qOlOœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "source": "Prompt-Zc4Af", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-Zc4Afœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-Gbt8L", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-Gbt8Lœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -64,211 +55,177 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-7qOlO", + "id": "Agent-Gbt8L", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "search_results", - "id": "Prompt-GxcHe", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-xI9hs", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-Agent-7qOlO{œdataTypeœ:œAgentœ,œidœ:œAgent-7qOlOœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-GxcHe{œfieldNameœ:œsearch_resultsœ,œidœ:œPrompt-GxcHeœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "id": "reactflow__edge-Agent-Gbt8L{œdataTypeœ:œAgentœ,œidœ:œAgent-Gbt8Lœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-xI9hs{œfieldNameœ:œsearch_resultsœ,œidœ:œPrompt-xI9hsœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, - "source": "Agent-7qOlO", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-7qOlOœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-GxcHe", - "targetHandle": "{œfieldNameœ: œsearch_resultsœ, œidœ: œPrompt-GxcHeœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "source": "Agent-Gbt8L", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-Gbt8Lœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-xI9hs", + "targetHandle": "{œfieldNameœ: œsearch_resultsœ, œidœ: œPrompt-xI9hsœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "TavilySearchComponent", - "id": "TavilySearchComponent-oJz7N", + "id": "TavilySearchComponent-622t2", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-7qOlO", - "inputTypes": [ - "Tool" - ], + "id": "Agent-Gbt8L", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-TavilySearchComponent-oJz7N{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-oJz7Nœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-7qOlO{œfieldNameœ:œtoolsœ,œidœ:œAgent-7qOlOœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "TavilySearchComponent-oJz7N", - "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-oJz7Nœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-7qOlO", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-7qOlOœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-TavilySearchComponent-622t2{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-622t2œ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-Gbt8L{œfieldNameœ:œtoolsœ,œidœ:œAgent-Gbt8Lœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "TavilySearchComponent-622t2", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-622t2œ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-Gbt8L", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-Gbt8Lœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-2yPE7", + "id": "Prompt-bxgAA", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", - "id": "OpenAIModel-VcHpk", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-iiRQd", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-2yPE7{œdataTypeœ:œPromptœ,œidœ:œPrompt-2yPE7œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-VcHpk{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-VcHpkœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-2yPE7", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-2yPE7œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-VcHpk", - "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-VcHpkœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-bxgAA{œdataTypeœ:œPromptœ,œidœ:œPrompt-bxgAAœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-iiRQd{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-iiRQdœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-bxgAA", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-bxgAAœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-iiRQd", + "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-iiRQdœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "ChatInput", - "id": "ChatInput-hasDY", + "id": "ChatInput-0hxgs", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "OpenAIModel-VcHpk", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-iiRQd", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-ChatInput-hasDY{œdataTypeœ:œChatInputœ,œidœ:œChatInput-hasDYœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-VcHpk{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-VcHpkœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "ChatInput-hasDY", - "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-hasDYœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-VcHpk", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-VcHpkœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-ChatInput-0hxgs{œdataTypeœ:œChatInputœ,œidœ:œChatInput-0hxgsœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-iiRQd{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-iiRQdœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "ChatInput-0hxgs", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-0hxgsœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-iiRQd", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-iiRQdœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-VcHpk", + "id": "OpenAIModel-iiRQd", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "previous_response", - "id": "Prompt-oCyQS", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-Zc4Af", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-OpenAIModel-VcHpk{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-VcHpkœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-oCyQS{œfieldNameœ:œprevious_responseœ,œidœ:œPrompt-oCyQSœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "OpenAIModel-VcHpk", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-VcHpkœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-oCyQS", - "targetHandle": "{œfieldNameœ: œprevious_responseœ, œidœ: œPrompt-oCyQSœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-OpenAIModel-iiRQd{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-iiRQdœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-Zc4Af{œfieldNameœ:œprevious_responseœ,œidœ:œPrompt-Zc4Afœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "OpenAIModel-iiRQd", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-iiRQdœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-Zc4Af", + "targetHandle": "{œfieldNameœ: œprevious_responseœ, œidœ: œPrompt-Zc4Afœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-GxcHe", + "id": "Prompt-xI9hs", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "OpenAIModel-zDrcf", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-rQIeM", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-GxcHe{œdataTypeœ:œPromptœ,œidœ:œPrompt-GxcHeœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-zDrcf{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-zDrcfœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-GxcHe", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-GxcHeœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-zDrcf", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-zDrcfœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-xI9hs{œdataTypeœ:œPromptœ,œidœ:œPrompt-xI9hsœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-rQIeM{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-rQIeMœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-xI9hs", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-xI9hsœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-rQIeM", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-rQIeMœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-OoSJu", + "id": "Prompt-ZbmDf", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", - "id": "OpenAIModel-zDrcf", - "inputTypes": [ - "Message" - ], + "id": "OpenAIModel-rQIeM", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-OoSJu{œdataTypeœ:œPromptœ,œidœ:œPrompt-OoSJuœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-zDrcf{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-zDrcfœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-OoSJu", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-OoSJuœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "OpenAIModel-zDrcf", - "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-zDrcfœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-ZbmDf{œdataTypeœ:œPromptœ,œidœ:œPrompt-ZbmDfœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-rQIeM{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-rQIeMœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-ZbmDf", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-ZbmDfœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "OpenAIModel-rQIeM", + "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-rQIeMœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "OpenAIModel", - "id": "OpenAIModel-zDrcf", + "id": "OpenAIModel-rQIeM", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "ChatOutput-joWRG", - "inputTypes": [ - "Message" - ], + "id": "ChatOutput-C4LXq", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-OpenAIModel-zDrcf{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-zDrcfœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-joWRG{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-joWRGœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "OpenAIModel-zDrcf", - "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-zDrcfœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", - "target": "ChatOutput-joWRG", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-joWRGœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-OpenAIModel-rQIeM{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-rQIeMœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-C4LXq{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-C4LXqœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "OpenAIModel-rQIeM", + "sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-rQIeMœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", + "target": "ChatOutput-C4LXq", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-C4LXqœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" } ], "nodes": [ @@ -276,25 +233,19 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-oCyQS", + "id": "Prompt-Zc4Af", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "previous_response" - ] + "template": ["previous_response"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -310,9 +261,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -345,10 +294,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -384,9 +330,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -407,7 +351,7 @@ }, "dragging": false, "height": 347, - "id": "Prompt-oCyQS", + "id": "Prompt-Zc4Af", "measured": { "height": 347, "width": 320 @@ -426,11 +370,9 @@ }, { "data": { - "id": "ChatInput-hasDY", + "id": "ChatInput-0hxgs", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "category": "inputs", "conditional_paths": [], @@ -466,9 +408,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -481,9 +421,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -502,9 +440,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -605,10 +541,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -623,9 +556,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -644,9 +575,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -681,9 +610,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -702,7 +629,7 @@ }, "dragging": false, "height": 234, - "id": "ChatInput-hasDY", + "id": "ChatInput-0hxgs", "measured": { "height": 234, "width": 320 @@ -723,11 +650,9 @@ "data": { "description": "Display a chat message in the Playground.", "display_name": "Chat Output", - "id": "ChatOutput-joWRG", + "id": "ChatOutput-C4LXq", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -761,9 +686,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -776,9 +699,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -798,9 +719,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -838,9 +757,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -860,9 +777,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -883,10 +798,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -902,9 +814,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -924,9 +834,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -962,9 +870,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -985,7 +891,7 @@ }, "dragging": true, "height": 234, - "id": "ChatOutput-joWRG", + "id": "ChatOutput-C4LXq", "measured": { "height": 234, "width": 320 @@ -1006,26 +912,19 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-GxcHe", + "id": "Prompt-xI9hs", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "search_results", - "input_value" - ] + "template": ["search_results", "input_value"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1041,9 +940,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1076,10 +973,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1099,10 +993,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1138,9 +1029,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1161,7 +1050,7 @@ }, "dragging": false, "height": 433, - "id": "Prompt-GxcHe", + "id": "Prompt-xI9hs", "measured": { "height": 433, "width": 320 @@ -1180,7 +1069,7 @@ }, { "data": { - "id": "note-mVf0U", + "id": "note-opQtx", "node": { "description": "# Research Agent \n\nWelcome to the Research Agent! This flow helps you conduct in-depth research on various topics using AI-powered tools and analysis.\n\n## Instructions\n1. Enter Your Research Query\n - Type your research question or topic into the Chat Input node.\n - Be specific and clear about what you want to investigate.\n\n2. Generate Research Plan\n - The system will create a focused research plan based on your query.\n - This plan includes key search queries and priorities.\n\n3. Conduct Web Search\n - The Tavily AI Search tool will perform web searches using the generated queries.\n - It focuses on finding academic and reliable sources.\n\n4. Analyze and Synthesize\n - The AI agent will review the search results and create a comprehensive synthesis.\n - The report includes an executive summary, methodology, findings, and conclusions.\n\n5. Review the Output\n - Read the final report in the Chat Output node.\n - Use this information as a starting point for further research or decision-making.\n\nRemember: You can refine your initial query for more specific results! 🔍📊", "display_name": "", @@ -1193,7 +1082,7 @@ }, "dragging": false, "height": 694, - "id": "note-mVf0U", + "id": "note-opQtx", "measured": { "height": 694, "width": 325 @@ -1219,11 +1108,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Agent", - "id": "Agent-7qOlO", + "id": "Agent-Gbt8L", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1274,9 +1161,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1305,9 +1190,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1358,9 +1241,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1369,7 +1250,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1411,9 +1292,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1505,9 +1384,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -1601,10 +1478,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -1638,11 +1512,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -1658,9 +1528,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1680,9 +1548,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1702,9 +1568,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1741,9 +1605,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1782,9 +1644,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -1818,7 +1678,7 @@ }, "dragging": false, "height": 658, - "id": "Agent-7qOlO", + "id": "Agent-Gbt8L", "measured": { "height": 658, "width": 320 @@ -1839,11 +1699,9 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-2yPE7", + "id": "Prompt-bxgAA", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1853,9 +1711,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1871,9 +1727,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1922,9 +1776,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1945,7 +1797,7 @@ }, "dragging": false, "height": 260, - "id": "Prompt-2yPE7", + "id": "Prompt-bxgAA", "measured": { "height": 260, "width": 320 @@ -1966,11 +1818,9 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-OoSJu", + "id": "Prompt-ZbmDf", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1980,9 +1830,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1998,9 +1846,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2049,9 +1895,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -2072,7 +1916,7 @@ }, "dragging": false, "height": 260, - "id": "Prompt-OoSJu", + "id": "Prompt-ZbmDf", "measured": { "height": 260, "width": 320 @@ -2091,7 +1935,7 @@ }, { "data": { - "id": "note-0T0JR", + "id": "note-6tIRa", "node": { "description": "# 🔑 Tavily AI Search Needs API Key\n\nYou can get 1000 searches/month free [here](https://tavily.com/) ", "display_name": "", @@ -2104,7 +1948,7 @@ }, "dragging": false, "height": 325, - "id": "note-0T0JR", + "id": "note-6tIRa", "measured": { "height": 325, "width": 326 @@ -2123,14 +1967,10 @@ }, { "data": { - "id": "TavilySearchComponent-oJz7N", + "id": "TavilySearchComponent-622t2", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, - "category": "tools", "conditional_paths": [], "custom_fields": {}, "description": "**Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", @@ -2142,13 +1982,13 @@ "query", "search_depth", "topic", + "time_range", "max_results", "include_images", "include_answer" ], "frozen": false, "icon": "TavilyIcon", - "key": "TavilySearchComponent", "legacy": false, "metadata": {}, "minimized": false, @@ -2163,14 +2003,12 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "tool_mode": true, + "types": ["Tool"], "value": "__UNDEFINED__" } ], "pinned": false, - "score": 0.0075846556637275304, "template": { "_type": "Component", "api_key": { @@ -2179,10 +2017,8 @@ "display_name": "Tavily API Key", "dynamic": false, "info": "Your Tavily API Key.", - "input_types": [ - "Message" - ], - "load_from_db": false, + "input_types": ["Message"], + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -2190,7 +2026,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "TAVILY_API_KEY" }, "code": { "advanced": true, @@ -2208,7 +2044,7 @@ "show": true, "title_case": false, "type": "code", - "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" + "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n DropdownInput(\n name=\"time_range\",\n display_name=\"Time Range\",\n info=\"The time range back from the current date to include in the search results.\",\n options=[\"day\", \"week\", \"month\", \"year\"],\n value=None,\n advanced=True,\n combobox=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n \"time_range\": self.time_range,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" }, "include_answer": { "_input_type": "BoolInput", @@ -2270,9 +2106,7 @@ "display_name": "Search Query", "dynamic": false, "info": "The search query you want to execute with Tavily.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2291,14 +2125,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Depth", "dynamic": false, "info": "The depth of the search.", "name": "search_depth", - "options": [ - "basic", - "advanced" - ], + "options": ["basic", "advanced"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2308,6 +2141,25 @@ "type": "str", "value": "advanced" }, + "time_range": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": true, + "dialog_inputs": {}, + "display_name": "Time Range", + "dynamic": false, + "info": "The time range back from the current date to include in the search results.", + "name": "time_range", + "options": ["day", "week", "month", "year"], + "options_metadata": [], + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "type": "str" + }, "tools_metadata": { "_input_type": "TableInput", "advanced": false, @@ -2333,10 +2185,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -2349,6 +2198,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": false, "name": "name", "sortable": false, "type": "text" @@ -2360,6 +2210,7 @@ "edit_mode": "popover", "filterable": false, "formatter": "text", + "hidden": false, "name": "description", "sortable": false, "type": "text" @@ -2371,6 +2222,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": true, "name": "tags", "sortable": false, "type": "text" @@ -2387,16 +2239,12 @@ { "description": "fetch_content(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", "name": "TavilySearchComponent-fetch_content", - "tags": [ - "TavilySearchComponent-fetch_content" - ] + "tags": ["TavilySearchComponent-fetch_content"] }, { "description": "fetch_content_text(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", "name": "TavilySearchComponent-fetch_content_text", - "tags": [ - "TavilySearchComponent-fetch_content_text" - ] + "tags": ["TavilySearchComponent-fetch_content_text"] } ] }, @@ -2404,14 +2252,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Topic", "dynamic": false, "info": "The category of the search.", "name": "topic", - "options": [ - "general", - "news" - ], + "options": ["general", "news"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -2428,7 +2275,7 @@ "type": "TavilySearchComponent" }, "dragging": false, - "id": "TavilySearchComponent-oJz7N", + "id": "TavilySearchComponent-622t2", "measured": { "height": 435, "width": 320 @@ -2442,12 +2289,9 @@ }, { "data": { - "id": "OpenAIModel-VcHpk", + "id": "OpenAIModel-iiRQd", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2486,9 +2330,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2497,14 +2339,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2518,10 +2356,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], - "load_from_db": true, + "input_types": ["Message"], + "load_from_db": false, "name": "api_key", "password": true, "placeholder": "", @@ -2529,7 +2365,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -2555,9 +2391,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2739,9 +2573,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2810,7 +2642,7 @@ "type": "OpenAIModel" }, "dragging": false, - "id": "OpenAIModel-VcHpk", + "id": "OpenAIModel-iiRQd", "measured": { "height": 653, "width": 320 @@ -2824,12 +2656,9 @@ }, { "data": { - "id": "OpenAIModel-zDrcf", + "id": "OpenAIModel-rQIeM", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2868,9 +2697,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2879,14 +2706,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2900,10 +2723,8 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], - "load_from_db": true, + "input_types": ["Message"], + "load_from_db": false, "name": "api_key", "password": true, "placeholder": "", @@ -2911,7 +2732,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -2937,9 +2758,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3121,9 +2940,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3192,7 +3009,7 @@ "type": "OpenAIModel" }, "dragging": false, - "id": "OpenAIModel-zDrcf", + "id": "OpenAIModel-rQIeM", "measured": { "height": 653, "width": 320 @@ -3206,9 +3023,9 @@ } ], "viewport": { - "x": -135.40378221384628, - "y": 346.1173837865683, - "zoom": 0.42682994266054 + "x": -142.70651359434498, + "y": 380.220352308604, + "zoom": 0.4057953245174196 } }, "description": "Agent that generates focused plans, conducts web searches, and synthesizes findings into comprehensive reports.", @@ -3219,8 +3036,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Research Agent", - "tags": [ - "assistants", - "agents" - ] -} \ No newline at end of file + "tags": ["assistants", "agents"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json b/src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json index c370ebf5c..a753473d0 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json @@ -8,16 +8,12 @@ "dataType": "Prompt", "id": "Prompt-a6SIY", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-brPVM", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -35,16 +31,12 @@ "dataType": "Prompt", "id": "Prompt-jkCpO", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-brPVM", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -62,16 +54,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-brPVM", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-oE2ic", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -90,9 +78,7 @@ "display_name": "Prompt", "id": "Prompt-jkCpO", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -109,9 +95,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -127,9 +111,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -162,10 +144,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -185,10 +164,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -208,10 +184,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -231,10 +204,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -254,10 +224,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -277,10 +244,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -316,9 +280,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -397,9 +359,7 @@ "display_name": "Prompt", "id": "Prompt-a6SIY", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -409,9 +369,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -427,9 +385,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -478,9 +434,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -524,9 +478,7 @@ "display_name": "Chat Output", "id": "ChatOutput-oE2ic", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -560,9 +512,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -575,9 +525,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -597,9 +545,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -637,9 +583,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -659,9 +603,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -682,10 +624,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -701,9 +640,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -723,9 +660,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -761,9 +696,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -835,10 +768,7 @@ "data": { "id": "OpenAIModel-brPVM", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -877,9 +807,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -888,14 +816,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -909,9 +833,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -920,7 +842,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -946,9 +868,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1130,9 +1050,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -1228,8 +1146,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "SEO Keyword Generator", - "tags": [ - "chatbots", - "assistants" - ] -} \ No newline at end of file + "tags": ["chatbots", "assistants"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json b/src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json index f093d56dd..217c1962e 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json @@ -109,9 +109,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -338,9 +336,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -654,9 +650,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -745,7 +739,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents .json b/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents .json index eed7e0e55..943b69d72 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents .json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents .json @@ -7,26 +7,22 @@ "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-xirI8", + "id": "Prompt-0tvfj", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_prompt", - "id": "Agent-9YXRo", - "inputTypes": [ - "Message" - ], + "id": "Agent-uHv68", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-xirI8{œdataTypeœ:œPromptœ,œidœ:œPrompt-xirI8œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-9YXRo{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-9YXRoœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-xirI8", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-xirI8œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-9YXRo", - "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-9YXRoœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-0tvfj{œdataTypeœ:œPromptœ,œidœ:œPrompt-0tvfjœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-uHv68{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-uHv68œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-0tvfj", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-0tvfjœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-uHv68", + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-uHv68œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -34,26 +30,22 @@ "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-f4paU", + "id": "Prompt-YbDgD", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_prompt", - "id": "Agent-RmOB2", - "inputTypes": [ - "Message" - ], + "id": "Agent-uO2c7", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-f4paU{œdataTypeœ:œPromptœ,œidœ:œPrompt-f4paUœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-RmOB2{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-RmOB2œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-f4paU", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-f4paUœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-RmOB2", - "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-RmOB2œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-YbDgD{œdataTypeœ:œPromptœ,œidœ:œPrompt-YbDgDœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-uO2c7{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-uO2c7œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-YbDgD", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-YbDgDœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-uO2c7", + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-uO2c7œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -61,26 +53,22 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-9YXRo", + "id": "Agent-uHv68", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "ChatOutput-DqyyQ", - "inputTypes": [ - "Message" - ], + "id": "ChatOutput-aOzn2", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Agent-9YXRo{œdataTypeœ:œAgentœ,œidœ:œAgent-9YXRoœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-DqyyQ{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-DqyyQœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Agent-9YXRo", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-9YXRoœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "ChatOutput-DqyyQ", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-DqyyQœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Agent-uHv68{œdataTypeœ:œAgentœ,œidœ:œAgent-uHv68œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-aOzn2{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-aOzn2œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Agent-uHv68", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-uHv68œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "ChatOutput-aOzn2", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-aOzn2œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -88,27 +76,22 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-RmOB2", + "id": "Agent-uO2c7", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "finance_agent_output", - "id": "Prompt-xirI8", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-0tvfj", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-Agent-RmOB2{œdataTypeœ:œAgentœ,œidœ:œAgent-RmOB2œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-xirI8{œfieldNameœ:œfinance_agent_outputœ,œidœ:œPrompt-xirI8œ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "Agent-RmOB2", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-RmOB2œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-xirI8", - "targetHandle": "{œfieldNameœ: œfinance_agent_outputœ, œidœ: œPrompt-xirI8œ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Agent-uO2c7{œdataTypeœ:œAgentœ,œidœ:œAgent-uO2c7œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-0tvfj{œfieldNameœ:œfinance_agent_outputœ,œidœ:œPrompt-0tvfjœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "Agent-uO2c7", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-uO2c7œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-0tvfj", + "targetHandle": "{œfieldNameœ: œfinance_agent_outputœ, œidœ: œPrompt-0tvfjœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -116,26 +99,22 @@ "data": { "sourceHandle": { "dataType": "ChatInput", - "id": "ChatInput-TQ1li", + "id": "ChatInput-yzskz", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Agent-TmQ5O", - "inputTypes": [ - "Message" - ], + "id": "Agent-6Gznl", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-ChatInput-TQ1li{œdataTypeœ:œChatInputœ,œidœ:œChatInput-TQ1liœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-TmQ5O{œfieldNameœ:œinput_valueœ,œidœ:œAgent-TmQ5Oœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "ChatInput-TQ1li", - "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-TQ1liœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-TmQ5O", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-TmQ5Oœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-ChatInput-yzskz{œdataTypeœ:œChatInputœ,œidœ:œChatInput-yzskzœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-6Gznl{œfieldNameœ:œinput_valueœ,œidœ:œAgent-6Gznlœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "ChatInput-yzskz", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-yzskzœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-6Gznl", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-6Gznlœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -143,26 +122,22 @@ "data": { "sourceHandle": { "dataType": "Prompt", - "id": "Prompt-3fyqW", + "id": "Prompt-Sxdul", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_prompt", - "id": "Agent-TmQ5O", - "inputTypes": [ - "Message" - ], + "id": "Agent-6Gznl", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Prompt-3fyqW{œdataTypeœ:œPromptœ,œidœ:œPrompt-3fyqWœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-TmQ5O{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-TmQ5Oœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Prompt-3fyqW", - "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-3fyqWœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-TmQ5O", - "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-TmQ5Oœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Prompt-Sxdul{œdataTypeœ:œPromptœ,œidœ:œPrompt-Sxdulœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-6Gznl{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-6Gznlœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Prompt-Sxdul", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-Sxdulœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-6Gznl", + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-6Gznlœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -170,26 +145,22 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-TmQ5O", + "id": "Agent-6Gznl", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", - "id": "Agent-RmOB2", - "inputTypes": [ - "Message" - ], + "id": "Agent-uO2c7", + "inputTypes": ["Message"], "type": "str" } }, - "id": "reactflow__edge-Agent-TmQ5O{œdataTypeœ:œAgentœ,œidœ:œAgent-TmQ5Oœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Agent-RmOB2{œfieldNameœ:œinput_valueœ,œidœ:œAgent-RmOB2œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", - "source": "Agent-TmQ5O", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-TmQ5Oœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "Agent-RmOB2", - "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-RmOB2œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Agent-6Gznl{œdataTypeœ:œAgentœ,œidœ:œAgent-6Gznlœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Agent-uO2c7{œfieldNameœ:œinput_valueœ,œidœ:œAgent-uO2c7œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", + "source": "Agent-6Gznl", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-6Gznlœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "Agent-uO2c7", + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-uO2c7œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -197,105 +168,88 @@ "data": { "sourceHandle": { "dataType": "Agent", - "id": "Agent-TmQ5O", + "id": "Agent-6Gznl", "name": "response", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "research_agent_output", - "id": "Prompt-xirI8", - "inputTypes": [ - "Message", - "Text" - ], + "id": "Prompt-0tvfj", + "inputTypes": ["Message", "Text"], "type": "str" } }, - "id": "reactflow__edge-Agent-TmQ5O{œdataTypeœ:œAgentœ,œidœ:œAgent-TmQ5Oœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-xirI8{œfieldNameœ:œresearch_agent_outputœ,œidœ:œPrompt-xirI8œ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", - "source": "Agent-TmQ5O", - "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-TmQ5Oœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", - "target": "Prompt-xirI8", - "targetHandle": "{œfieldNameœ: œresearch_agent_outputœ, œidœ: œPrompt-xirI8œ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" + "id": "reactflow__edge-Agent-6Gznl{œdataTypeœ:œAgentœ,œidœ:œAgent-6Gznlœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-0tvfj{œfieldNameœ:œresearch_agent_outputœ,œidœ:œPrompt-0tvfjœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", + "source": "Agent-6Gznl", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-6Gznlœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", + "target": "Prompt-0tvfj", + "targetHandle": "{œfieldNameœ: œresearch_agent_outputœ, œidœ: œPrompt-0tvfjœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "CalculatorComponent", - "id": "CalculatorComponent-82dCo", + "id": "CalculatorComponent-WMC2W", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-9YXRo", - "inputTypes": [ - "Tool" - ], + "id": "Agent-uHv68", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-CalculatorComponent-82dCo{œdataTypeœ:œCalculatorComponentœ,œidœ:œCalculatorComponent-82dCoœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-9YXRo{œfieldNameœ:œtoolsœ,œidœ:œAgent-9YXRoœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "CalculatorComponent-82dCo", - "sourceHandle": "{œdataTypeœ: œCalculatorComponentœ, œidœ: œCalculatorComponent-82dCoœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-9YXRo", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-9YXRoœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-CalculatorComponent-WMC2W{œdataTypeœ:œCalculatorComponentœ,œidœ:œCalculatorComponent-WMC2Wœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-uHv68{œfieldNameœ:œtoolsœ,œidœ:œAgent-uHv68œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "CalculatorComponent-WMC2W", + "sourceHandle": "{œdataTypeœ: œCalculatorComponentœ, œidœ: œCalculatorComponent-WMC2Wœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-uHv68", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-uHv68œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "YfinanceComponent", - "id": "YfinanceComponent-P0VBm", + "id": "YfinanceComponent-BIM81", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-RmOB2", - "inputTypes": [ - "Tool" - ], + "id": "Agent-uO2c7", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-YfinanceComponent-P0VBm{œdataTypeœ:œYfinanceComponentœ,œidœ:œYfinanceComponent-P0VBmœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-RmOB2{œfieldNameœ:œtoolsœ,œidœ:œAgent-RmOB2œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "YfinanceComponent-P0VBm", - "sourceHandle": "{œdataTypeœ: œYfinanceComponentœ, œidœ: œYfinanceComponent-P0VBmœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-RmOB2", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-RmOB2œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-YfinanceComponent-BIM81{œdataTypeœ:œYfinanceComponentœ,œidœ:œYfinanceComponent-BIM81œ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-uO2c7{œfieldNameœ:œtoolsœ,œidœ:œAgent-uO2c7œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "YfinanceComponent-BIM81", + "sourceHandle": "{œdataTypeœ: œYfinanceComponentœ, œidœ: œYfinanceComponent-BIM81œ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-uO2c7", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-uO2c7œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "className": "", "data": { "sourceHandle": { "dataType": "TavilySearchComponent", - "id": "TavilySearchComponent-ZgS55", + "id": "TavilySearchComponent-YUDsR", "name": "component_as_tool", - "output_types": [ - "Tool" - ] + "output_types": ["Tool"] }, "targetHandle": { "fieldName": "tools", - "id": "Agent-TmQ5O", - "inputTypes": [ - "Tool" - ], + "id": "Agent-6Gznl", + "inputTypes": ["Tool"], "type": "other" } }, - "id": "reactflow__edge-TavilySearchComponent-ZgS55{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-ZgS55œ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-TmQ5O{œfieldNameœ:œtoolsœ,œidœ:œAgent-TmQ5Oœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", - "source": "TavilySearchComponent-ZgS55", - "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-ZgS55œ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", - "target": "Agent-TmQ5O", - "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-TmQ5Oœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" + "id": "reactflow__edge-TavilySearchComponent-YUDsR{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-YUDsRœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-6Gznl{œfieldNameœ:œtoolsœ,œidœ:œAgent-6Gznlœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", + "source": "TavilySearchComponent-YUDsR", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-YUDsRœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", + "target": "Agent-6Gznl", + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-6Gznlœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" } ], "nodes": [ @@ -303,11 +257,9 @@ "data": { "description": "Display a chat message in the Playground.", "display_name": "Chat Output", - "id": "ChatOutput-DqyyQ", + "id": "ChatOutput-aOzn2", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -341,9 +293,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -356,9 +306,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -378,9 +326,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -418,9 +364,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -440,9 +384,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -463,10 +405,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -482,9 +421,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -504,9 +441,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -542,9 +477,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -565,10 +498,10 @@ }, "dragging": false, "height": 234, - "id": "ChatOutput-DqyyQ", + "id": "ChatOutput-aOzn2", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": 1239.222567317785, @@ -586,11 +519,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Finance Agent", - "id": "Agent-RmOB2", + "id": "Agent-uO2c7", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -641,9 +572,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -672,9 +601,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -725,9 +652,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -778,9 +703,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -872,9 +795,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -968,10 +889,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -1005,11 +923,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -1025,9 +939,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1047,9 +959,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1069,9 +979,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1108,9 +1016,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1149,9 +1055,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -1185,10 +1089,10 @@ }, "dragging": false, "height": 650, - "id": "Agent-RmOB2", + "id": "Agent-uO2c7", "measured": { "height": 650, - "width": 360 + "width": 320 }, "position": { "x": 45.70736046026991, @@ -1206,11 +1110,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Analysis & Editor Agent", - "id": "Agent-9YXRo", + "id": "Agent-uHv68", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1261,9 +1163,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1292,9 +1192,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1345,9 +1243,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1398,9 +1294,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1492,9 +1386,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -1588,10 +1480,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -1625,11 +1514,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -1645,9 +1530,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1667,9 +1550,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1689,9 +1570,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1728,9 +1607,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1769,9 +1646,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -1805,10 +1680,10 @@ }, "dragging": false, "height": 650, - "id": "Agent-9YXRo", + "id": "Agent-uHv68", "measured": { "height": 650, - "width": 360 + "width": 320 }, "position": { "x": 815.1900903820148, @@ -1826,11 +1701,9 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-3fyqW", + "id": "Prompt-Sxdul", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1841,9 +1714,7 @@ "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": true, "full_path": null, "icon": "prompts", @@ -1864,9 +1735,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1915,9 +1784,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1938,10 +1805,10 @@ }, "dragging": false, "height": 260, - "id": "Prompt-3fyqW", + "id": "Prompt-Sxdul", "measured": { "height": 260, - "width": 360 + "width": 320 }, "position": { "x": -1142.2312935529987, @@ -1959,11 +1826,9 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-f4paU", + "id": "Prompt-YbDgD", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1974,9 +1839,7 @@ "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "full_path": null, "icon": "prompts", @@ -1997,9 +1860,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2048,9 +1909,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -2071,10 +1930,10 @@ }, "dragging": false, "height": 260, - "id": "Prompt-f4paU", + "id": "Prompt-YbDgD", "measured": { "height": 260, - "width": 360 + "width": 320 }, "position": { "x": -344.9674638932195, @@ -2092,27 +1951,20 @@ "data": { "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", - "id": "Prompt-xirI8", + "id": "Prompt-0tvfj", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "research_agent_output", - "finance_agent_output" - ] + "template": ["research_agent_output", "finance_agent_output"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "full_path": null, "icon": "prompts", @@ -2133,9 +1985,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2168,10 +2018,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -2191,10 +2038,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -2230,9 +2074,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -2253,10 +2095,10 @@ }, "dragging": false, "height": 433, - "id": "Prompt-xirI8", + "id": "Prompt-0tvfj", "measured": { "height": 433, - "width": 360 + "width": 320 }, "position": { "x": 416.02309796632085, @@ -2272,11 +2114,9 @@ }, { "data": { - "id": "ChatInput-TQ1li", + "id": "ChatInput-yzskz", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -2310,9 +2150,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2325,9 +2163,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -2347,9 +2183,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -2452,10 +2286,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -2471,9 +2302,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -2493,9 +2322,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -2531,9 +2358,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -2554,10 +2379,10 @@ }, "dragging": false, "height": 234, - "id": "ChatInput-TQ1li", + "id": "ChatInput-yzskz", "measured": { "height": 234, - "width": 360 + "width": 320 }, "position": { "x": -1510.6054210793818, @@ -2573,7 +2398,7 @@ }, { "data": { - "id": "note-j0zav", + "id": "note-925JF", "node": { "description": "# Sequential Tasks Agents\n\n## Overview\nThis flow demonstrates how to chain multiple AI agents for comprehensive research and analysis. Each agent specializes in different aspects of the research process, building upon the previous agent's work.\n\n## How to Use the Flow\n\n1. **Input Your Query** 🎯\n - Be specific and clear\n - Include key aspects you want analyzed\n - Examples:\n ```\n Good: \"Should I invest in Tesla (TSLA)? Focus on AI development impact\"\n Bad: \"Tell me about Tesla\"\n ```\n\n2. **Research Agent Process** 🔍\n - Utilizes Tavily Search for comprehensive research\n\n\n3. **Specialized Analysis** 📊\n - Each agent adds unique value:\n ```\n Research Agent → Deep Research & Context\n ↓\n Finance Agent → Data Analysis & Metrics\n ↓\n Editor Agent → Final Synthesis & Report\n ```\n\n4. **Output Format** 📝\n - Structured report\n - Embedded images and charts\n - Data-backed insights\n - Clear recommendations\n\n## Pro Tips\n\n### Query Construction\n- Include specific points of interest\n- Mention required metrics or data points\n- Specify time frames if relevant\n\n### Flow Customization\n- Modify agent prompts for different use cases\n- Add or remove tools as needed\n\n## Common Applications\n- Investment Research\n- Market Analysis\n- Competitive Intelligence\n- Industry Reports\n- Technology Impact Studies\n\n⚡ **Best Practice**: Start with a test query to understand the flow's capabilities before running complex analyses.\n\n---\n*Note: This flow template uses financial analysis as an example but can be adapted for any research-intensive task requiring multiple perspectives and data sources.*", "display_name": "", @@ -2584,10 +2409,10 @@ }, "dragging": false, "height": 800, - "id": "note-j0zav", + "id": "note-925JF", "measured": { "height": 800, - "width": 328 + "width": 601 }, "position": { "x": -2122.739127560837, @@ -2608,7 +2433,7 @@ }, { "data": { - "id": "note-pUC9D", + "id": "note-nQe4N", "node": { "description": "## What Are Sequential Task Agents?\nA system where multiple AI agents work in sequence, each specializing in specific tasks and passing their output to the next agent in the chain. Think of it as an assembly line where each agent adds value to the final result.\n\n## How It Works\n1. **First Agent** → **Second Agent** → **Third Agent** → **Final Output**\n - Each agent receives input from the previous one\n - Processes and enhances the information\n - Passes refined output forward\n\n## Key Benefits\n- **Specialization**: Each agent focuses on specific tasks\n- **Progressive Refinement**: Information gets enhanced at each step\n- **Structured Output**: Final result combines multiple perspectives\n- **Quality Control**: Each agent validates and improves previous work\n\n## Building Your Own Sequence\n1. **Plan Your Chain**\n - Identify distinct tasks\n - Determine logical order\n - Define input/output requirements\n\n2. **Configure Agents**\n - Give each agent clear instructions\n - Ensure compatible outputs/inputs\n - Set appropriate tools for each agent\n\n3. **Connect the Flow**\n - Link agents in proper order\n - Test data flow between agents\n - Verify final output format\n\n## Example Applications\n- Research → Analysis → Report Writing\n- Data Collection → Processing → Visualization\n- Content Research → Writing → Editing\n- Market Analysis → Financial Review → Investment Advice\n\n⭐ **Pro Tip**: The strength of sequential agents comes from how well they complement each other's capabilities.\n\nThis template uses financial analysis as an example, but you can adapt it for any multi-step process requiring different expertise at each stage.", "display_name": "", @@ -2621,10 +2446,10 @@ }, "dragging": false, "height": 800, - "id": "note-pUC9D", + "id": "note-nQe4N", "measured": { "height": 800, - "width": 328 + "width": 601 }, "position": { "x": -1456.0688717707517, @@ -2647,11 +2472,9 @@ "data": { "description": "Define the agent's instructions, then enter a task to complete using tools.", "display_name": "Researcher Agent", - "id": "Agent-TmQ5O", + "id": "Agent-6Gznl", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -2702,9 +2525,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2733,9 +2554,7 @@ "display_name": "Agent Description [Deprecated]", "dynamic": false, "info": "The description of the agent. This is only used when in Tool Mode. Defaults to 'A helpful assistant with access to the following tools:' and tools are added dynamically. This feature is deprecated and will be removed in future versions.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -2786,9 +2605,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2839,9 +2656,7 @@ "display_name": "Input", "dynamic": false, "info": "The input provided by the user for the agent to process.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -2933,9 +2748,7 @@ "display_name": "External Memory", "dynamic": false, "info": "Retrieve messages from an external memory. If empty, it will use the Langflow tables.", - "input_types": [ - "Memory" - ], + "input_types": ["Memory"], "list": false, "name": "memory", "placeholder": "", @@ -3029,10 +2842,7 @@ "dynamic": false, "info": "Order of the messages.", "name": "order", - "options": [ - "Ascending", - "Descending" - ], + "options": ["Ascending", "Descending"], "placeholder": "", "required": false, "show": true, @@ -3066,11 +2876,7 @@ "dynamic": false, "info": "Filter by sender type.", "name": "sender", - "options": [ - "Machine", - "User", - "Machine and User" - ], + "options": ["Machine", "User", "Machine and User"], "placeholder": "", "required": false, "show": true, @@ -3086,9 +2892,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Filter by sender name.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -3108,9 +2912,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -3130,9 +2932,7 @@ "display_name": "Agent Instructions", "dynamic": false, "info": "System Prompt: Initial instructions and context provided to guide the agent's behavior.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -3169,9 +2969,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -3210,9 +3008,7 @@ "display_name": "Tools", "dynamic": false, "info": "These are the tools that the agent can use to help with tasks.", - "input_types": [ - "Tool" - ], + "input_types": ["Tool"], "list": true, "name": "tools", "placeholder": "", @@ -3246,10 +3042,10 @@ }, "dragging": false, "height": 650, - "id": "Agent-TmQ5O", + "id": "Agent-6Gznl", "measured": { "height": 650, - "width": 360 + "width": 320 }, "position": { "x": -715.1798010873374, @@ -3265,7 +3061,7 @@ }, { "data": { - "id": "note-NgTrE", + "id": "note-Lh7q4", "node": { "description": "## Get your API key at [https://tavily.com](https://tavily.com)\n", "display_name": "", @@ -3278,10 +3074,10 @@ }, "dragging": false, "height": 324, - "id": "note-NgTrE", + "id": "note-Lh7q4", "measured": { "height": 324, - "width": 328 + "width": 348 }, "position": { "x": -1144.3898055225054, @@ -3302,7 +3098,7 @@ }, { "data": { - "id": "note-7I7gz", + "id": "note-7B1PU", "node": { "description": "## Configure the agent by obtaining your OpenAI API key from [platform.openai.com](https://platform.openai.com). Under \"Model Provider\", choose:\n- OpenAI: Default, requires only API key\n- Anthropic/Azure/Groq/NVIDIA/SambaNova: Each requires their own API keys\n- Custom: Use your own model endpoint + authentication\n\nSelect model and input API key before running the flow.", "display_name": "", @@ -3315,10 +3111,10 @@ }, "dragging": false, "height": 324, - "id": "note-7I7gz", + "id": "note-7B1PU", "measured": { "height": 324, - "width": 328 + "width": 371 }, "position": { "x": -739.4383746675942, @@ -3339,12 +3135,9 @@ }, { "data": { - "id": "YfinanceComponent-P0VBm", + "id": "YfinanceComponent-BIM81", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, "category": "tools", "conditional_paths": [], @@ -3353,11 +3146,7 @@ "display_name": "Yahoo Finance", "documentation": "", "edited": false, - "field_order": [ - "symbol", - "method", - "num_news" - ], + "field_order": ["symbol", "method", "num_news"], "frozen": false, "icon": "trending-up", "key": "YfinanceComponent", @@ -3374,9 +3163,7 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "types": ["Tool"], "value": "__UNDEFINED__" } ], @@ -3470,9 +3257,7 @@ "display_name": "Stock Symbol", "dynamic": false, "info": "The stock symbol to retrieve data for (e.g., AAPL, GOOG).", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3512,10 +3297,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -3566,16 +3348,12 @@ { "description": "fetch_content() - Uses [yfinance](https://pypi.org/project/yfinance/) (unofficial package) to access financial data and market information from Yahoo Finance.", "name": "YfinanceComponent-fetch_content", - "tags": [ - "YfinanceComponent-fetch_content" - ] + "tags": ["YfinanceComponent-fetch_content"] }, { "description": "fetch_content_text() - Uses [yfinance](https://pypi.org/project/yfinance/) (unofficial package) to access financial data and market information from Yahoo Finance.", "name": "YfinanceComponent-fetch_content_text", - "tags": [ - "YfinanceComponent-fetch_content_text" - ] + "tags": ["YfinanceComponent-fetch_content_text"] } ] } @@ -3586,10 +3364,10 @@ "type": "YfinanceComponent" }, "dragging": true, - "id": "YfinanceComponent-P0VBm", + "id": "YfinanceComponent-BIM81", "measured": { - "height": 581, - "width": 360 + "height": 517, + "width": 320 }, "position": { "x": -347.05382068428014, @@ -3600,11 +3378,9 @@ }, { "data": { - "id": "CalculatorComponent-82dCo", + "id": "CalculatorComponent-WMC2W", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "category": "tools", "conditional_paths": [], @@ -3613,9 +3389,7 @@ "display_name": "Calculator", "documentation": "", "edited": false, - "field_order": [ - "expression" - ], + "field_order": ["expression"], "frozen": false, "icon": "calculator", "key": "CalculatorComponent", @@ -3632,9 +3406,7 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "types": ["Tool"], "value": "__UNDEFINED__" } ], @@ -3666,9 +3438,7 @@ "display_name": "Expression", "dynamic": false, "info": "The arithmetic expression to evaluate (e.g., '4*4*(33/22)+12-20').", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3708,10 +3478,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -3762,9 +3529,7 @@ { "description": "evaluate_expression() - Perform basic arithmetic operations on a given expression.", "name": "CalculatorComponent-evaluate_expression", - "tags": [ - "CalculatorComponent-evaluate_expression" - ] + "tags": ["CalculatorComponent-evaluate_expression"] } ] } @@ -3775,10 +3540,10 @@ "type": "CalculatorComponent" }, "dragging": false, - "id": "CalculatorComponent-82dCo", + "id": "CalculatorComponent-WMC2W", "measured": { - "height": 374, - "width": 360 + "height": 333, + "width": 320 }, "position": { "x": 418.5430081507146, @@ -3789,14 +3554,10 @@ }, { "data": { - "id": "TavilySearchComponent-ZgS55", + "id": "TavilySearchComponent-YUDsR", "node": { - "base_classes": [ - "Data", - "Message" - ], + "base_classes": ["Data", "Message"], "beta": false, - "category": "tools", "conditional_paths": [], "custom_fields": {}, "description": "**Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", @@ -3808,13 +3569,13 @@ "query", "search_depth", "topic", + "time_range", "max_results", "include_images", "include_answer" ], "frozen": false, "icon": "TavilyIcon", - "key": "TavilySearchComponent", "legacy": false, "metadata": {}, "minimized": false, @@ -3829,14 +3590,12 @@ "name": "component_as_tool", "required_inputs": null, "selected": "Tool", - "types": [ - "Tool" - ], + "tool_mode": true, + "types": ["Tool"], "value": "__UNDEFINED__" } ], "pinned": false, - "score": 0.0075846556637275304, "template": { "_type": "Component", "api_key": { @@ -3845,9 +3604,7 @@ "display_name": "Tavily API Key", "dynamic": false, "info": "Your Tavily API Key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -3856,7 +3613,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "TAVILY_API_KEY" }, "code": { "advanced": true, @@ -3874,7 +3631,7 @@ "show": true, "title_case": false, "type": "code", - "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" + "value": "import httpx\nfrom loguru import logger\n\nfrom langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass TavilySearchComponent(Component):\n display_name = \"Tavily AI Search\"\n description = \"\"\"**Tavily AI** is a search engine optimized for LLMs and RAG, \\\n aimed at efficient, quick, and persistent search results.\"\"\"\n icon = \"TavilyIcon\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"Tavily API Key\",\n required=True,\n info=\"Your Tavily API Key.\",\n ),\n MessageTextInput(\n name=\"query\",\n display_name=\"Search Query\",\n info=\"The search query you want to execute with Tavily.\",\n tool_mode=True,\n ),\n DropdownInput(\n name=\"search_depth\",\n display_name=\"Search Depth\",\n info=\"The depth of the search.\",\n options=[\"basic\", \"advanced\"],\n value=\"advanced\",\n advanced=True,\n ),\n DropdownInput(\n name=\"topic\",\n display_name=\"Search Topic\",\n info=\"The category of the search.\",\n options=[\"general\", \"news\"],\n value=\"general\",\n advanced=True,\n ),\n DropdownInput(\n name=\"time_range\",\n display_name=\"Time Range\",\n info=\"The time range back from the current date to include in the search results.\",\n options=[\"day\", \"week\", \"month\", \"year\"],\n value=None,\n advanced=True,\n combobox=True,\n ),\n IntInput(\n name=\"max_results\",\n display_name=\"Max Results\",\n info=\"The maximum number of search results to return.\",\n value=5,\n advanced=True,\n ),\n BoolInput(\n name=\"include_images\",\n display_name=\"Include Images\",\n info=\"Include a list of query-related images in the response.\",\n value=True,\n advanced=True,\n ),\n BoolInput(\n name=\"include_answer\",\n display_name=\"Include Answer\",\n info=\"Include a short answer to original query.\",\n value=True,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Data\", name=\"data\", method=\"fetch_content\"),\n Output(display_name=\"Text\", name=\"text\", method=\"fetch_content_text\"),\n ]\n\n def fetch_content(self) -> list[Data]:\n try:\n url = \"https://api.tavily.com/search\"\n headers = {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n }\n payload = {\n \"api_key\": self.api_key,\n \"query\": self.query,\n \"search_depth\": self.search_depth,\n \"topic\": self.topic,\n \"max_results\": self.max_results,\n \"include_images\": self.include_images,\n \"include_answer\": self.include_answer,\n \"time_range\": self.time_range,\n }\n\n with httpx.Client() as client:\n response = client.post(url, json=payload, headers=headers)\n\n response.raise_for_status()\n search_results = response.json()\n\n data_results = []\n\n if self.include_answer and search_results.get(\"answer\"):\n data_results.append(Data(text=search_results[\"answer\"]))\n\n for result in search_results.get(\"results\", []):\n content = result.get(\"content\", \"\")\n data_results.append(\n Data(\n text=content,\n data={\n \"title\": result.get(\"title\"),\n \"url\": result.get(\"url\"),\n \"content\": content,\n \"score\": result.get(\"score\"),\n },\n )\n )\n\n if self.include_images and search_results.get(\"images\"):\n data_results.append(Data(text=\"Images found\", data={\"images\": search_results[\"images\"]}))\n except httpx.HTTPStatusError as exc:\n error_message = f\"HTTP error occurred: {exc.response.status_code} - {exc.response.text}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except httpx.RequestError as exc:\n error_message = f\"Request error occurred: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n except ValueError as exc:\n error_message = f\"Invalid response format: {exc}\"\n logger.error(error_message)\n return [Data(text=error_message, data={\"error\": error_message})]\n else:\n self.status = data_results\n return data_results\n\n def fetch_content_text(self) -> Message:\n data = self.fetch_content()\n result_string = data_to_text(\"{text}\", data)\n self.status = result_string\n return Message(text=result_string)\n" }, "include_answer": { "_input_type": "BoolInput", @@ -3936,9 +3693,7 @@ "display_name": "Search Query", "dynamic": false, "info": "The search query you want to execute with Tavily.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3957,14 +3712,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Depth", "dynamic": false, "info": "The depth of the search.", "name": "search_depth", - "options": [ - "basic", - "advanced" - ], + "options": ["basic", "advanced"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -3974,6 +3728,25 @@ "type": "str", "value": "advanced" }, + "time_range": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": true, + "dialog_inputs": {}, + "display_name": "Time Range", + "dynamic": false, + "info": "The time range back from the current date to include in the search results.", + "name": "time_range", + "options": ["day", "week", "month", "year"], + "options_metadata": [], + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "type": "str" + }, "tools_metadata": { "_input_type": "TableInput", "advanced": false, @@ -3999,10 +3772,7 @@ "description": "Modify tool names and descriptions to help agents understand when to use each tool.", "field_parsers": { "commands": "commands", - "name": [ - "snake_case", - "no_blank" - ] + "name": ["snake_case", "no_blank"] }, "hide_options": true }, @@ -4015,6 +3785,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": false, "name": "name", "sortable": false, "type": "text" @@ -4026,6 +3797,7 @@ "edit_mode": "popover", "filterable": false, "formatter": "text", + "hidden": false, "name": "description", "sortable": false, "type": "text" @@ -4037,6 +3809,7 @@ "edit_mode": "inline", "filterable": false, "formatter": "text", + "hidden": true, "name": "tags", "sortable": false, "type": "text" @@ -4053,16 +3826,12 @@ { "description": "fetch_content(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", "name": "TavilySearchComponent-fetch_content", - "tags": [ - "TavilySearchComponent-fetch_content" - ] + "tags": ["TavilySearchComponent-fetch_content"] }, { "description": "fetch_content_text(api_key: Message) - **Tavily AI** is a search engine optimized for LLMs and RAG, aimed at efficient, quick, and persistent search results.", "name": "TavilySearchComponent-fetch_content_text", - "tags": [ - "TavilySearchComponent-fetch_content_text" - ] + "tags": ["TavilySearchComponent-fetch_content_text"] } ] }, @@ -4070,14 +3839,13 @@ "_input_type": "DropdownInput", "advanced": true, "combobox": false, + "dialog_inputs": {}, "display_name": "Search Topic", "dynamic": false, "info": "The category of the search.", "name": "topic", - "options": [ - "general", - "news" - ], + "options": ["general", "news"], + "options_metadata": [], "placeholder": "", "required": false, "show": true, @@ -4094,10 +3862,10 @@ "type": "TavilySearchComponent" }, "dragging": false, - "id": "TavilySearchComponent-ZgS55", + "id": "TavilySearchComponent-YUDsR", "measured": { - "height": 489, - "width": 360 + "height": 435, + "width": 320 }, "position": { "x": -1138.848513020278, @@ -4108,9 +3876,9 @@ } ], "viewport": { - "x": 905.1150074113123, - "y": 872.5950106358109, - "zoom": 0.3920220111611041 + "x": 775.7505727867583, + "y": 1003.6897614169809, + "zoom": 0.3362831883623481 } }, "description": "This Agent is designed to systematically execute a series of tasks following a meticulously predefined sequence. By adhering to this structured order, the Agent ensures that each task is completed efficiently and effectively, optimizing overall performance and maintaining a high level of accuracy.", @@ -4121,9 +3889,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Sequential Tasks Agents", - "tags": [ - "assistants", - "agents", - "web-scraping" - ] -} \ No newline at end of file + "tags": ["assistants", "agents", "web-scraping"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json b/src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json index 717eecbf5..f5a2feaae 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json @@ -152,9 +152,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -243,7 +241,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -720,9 +718,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1002,9 +998,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json b/src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json index c33c0d32e..eec055719 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json @@ -199,9 +199,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -479,9 +477,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -760,9 +756,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -851,7 +845,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1353,9 +1347,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1444,7 +1436,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1946,9 +1938,7 @@ "name": "response", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -2037,7 +2027,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -3101,7 +3091,7 @@ "dynamic": false, "info": "", "input_types": ["Message"], - "load_from_db": false, + "load_from_db": true, "name": "api_key", "password": true, "placeholder": "", @@ -3109,7 +3099,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "SEARCHAPI_API_KEY" }, "code": { "advanced": true, diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json b/src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json index df79c9928..c2d3e5468 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json @@ -9,17 +9,12 @@ "dataType": "TextInput", "id": "TextInput-eClq5", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "CONTENT_GUIDELINES", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -38,17 +33,12 @@ "dataType": "TextInput", "id": "TextInput-IpoG7", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "OUTPUT_FORMAT", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -67,17 +57,12 @@ "dataType": "TextInput", "id": "TextInput-npraC", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "OUTPUT_LANGUAGE", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -96,17 +81,12 @@ "dataType": "TextInput", "id": "TextInput-EZaR7", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "PROFILE_DETAILS", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -125,17 +105,12 @@ "dataType": "TextInput", "id": "TextInput-fKGcs", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "PROFILE_TYPE", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -154,17 +129,12 @@ "dataType": "TextInput", "id": "TextInput-92vEK", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "TONE_AND_STYLE", "id": "Prompt-AWZtN", - "inputTypes": [ - "Message", - "Text" - ], + "inputTypes": ["Message", "Text"], "type": "str" } }, @@ -182,16 +152,12 @@ "dataType": "ChatInput", "id": "ChatInput-ECcN8", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "OpenAIModel-p0R9m", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -209,16 +175,12 @@ "dataType": "Prompt", "id": "Prompt-AWZtN", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "system_message", "id": "OpenAIModel-p0R9m", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -236,16 +198,12 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-p0R9m", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", "id": "ChatOutput-0jDYx", - "inputTypes": [ - "Message" - ], + "inputTypes": ["Message"], "type": "str" } }, @@ -262,9 +220,7 @@ "data": { "id": "ChatInput-ECcN8", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -298,9 +254,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -313,9 +267,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -334,9 +286,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -437,10 +387,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -455,9 +402,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -476,9 +421,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -513,9 +456,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -555,9 +496,7 @@ "data": { "id": "TextInput-eClq5", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -565,9 +504,7 @@ "display_name": "Content Guidelines", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -583,9 +520,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -616,9 +551,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -661,9 +594,7 @@ "display_name": "Chat Output", "id": "ChatOutput-0jDYx", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -697,9 +628,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -712,9 +641,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -734,9 +661,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -774,9 +699,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -796,9 +719,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -819,10 +740,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -838,9 +756,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -860,9 +776,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -898,9 +812,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -942,9 +854,7 @@ "data": { "id": "TextInput-IpoG7", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -952,9 +862,7 @@ "display_name": "Output Format", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -970,9 +878,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1003,9 +909,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1046,9 +950,7 @@ "data": { "id": "TextInput-npraC", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1056,9 +958,7 @@ "display_name": "Output Language", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -1074,9 +974,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1107,9 +1005,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1150,9 +1046,7 @@ "data": { "id": "TextInput-EZaR7", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1160,9 +1054,7 @@ "display_name": "Profile Details", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -1178,9 +1070,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1211,9 +1101,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1254,9 +1142,7 @@ "data": { "id": "TextInput-92vEK", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1264,9 +1150,7 @@ "display_name": "Tone And Style", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -1282,9 +1166,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1315,9 +1197,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1358,9 +1238,7 @@ "data": { "id": "TextInput-fKGcs", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1368,9 +1246,7 @@ "display_name": "Profile Type", "documentation": "", "edited": false, - "field_order": [ - "input_value" - ], + "field_order": ["input_value"], "frozen": false, "icon": "type", "legacy": false, @@ -1386,9 +1262,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1419,9 +1293,7 @@ "display_name": "Text", "dynamic": false, "info": "Text to be passed as input.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -1501,9 +1373,7 @@ "display_name": "Prompt", "id": "Prompt-AWZtN", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { @@ -1520,9 +1390,7 @@ "display_name": "Prompt", "documentation": "", "edited": false, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "icon": "prompts", "legacy": false, @@ -1538,9 +1406,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1554,10 +1420,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1577,10 +1440,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1600,10 +1460,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1623,10 +1480,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1646,10 +1500,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1669,10 +1520,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -1727,9 +1575,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -1771,10 +1617,7 @@ "data": { "id": "OpenAIModel-p0R9m", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -1813,9 +1656,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -1824,14 +1665,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -1845,9 +1682,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -1856,7 +1691,7 @@ "show": true, "title_case": false, "type": "str", - "value": "" + "value": "OPENAI_API_KEY" }, "code": { "advanced": true, @@ -1882,9 +1717,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2066,9 +1899,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -2164,8 +1995,5 @@ "is_component": false, "last_tested_version": "1.0.19.post2", "name": "Twitter Thread Generator", - "tags": [ - "chatbots", - "content-generation" - ] -} \ No newline at end of file + "tags": ["chatbots", "content-generation"] +} diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json b/src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json index 7228b82a6..8eb09bbbd 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json @@ -9,9 +9,7 @@ "dataType": "ParseData", "id": "ParseData-cwmU0", "name": "text", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "context", @@ -37,9 +35,7 @@ "dataType": "ChatInput", "id": "ChatInput-IRziS", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "question", @@ -65,9 +61,7 @@ "dataType": "File", "id": "File-4yyks", "name": "data", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data_inputs", @@ -91,9 +85,7 @@ "dataType": "Prompt", "id": "Prompt-wBjYe", "name": "prompt", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", @@ -117,9 +109,7 @@ "dataType": "OpenAIModel", "id": "OpenAIModel-XJ1BC", "name": "text_output", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "input_value", @@ -142,9 +132,7 @@ "dataType": "OpenAIEmbeddings", "id": "OpenAIEmbeddings-xoSJQ", "name": "embeddings", - "output_types": [ - "Embeddings" - ] + "output_types": ["Embeddings"] }, "targetHandle": { "fieldName": "embedding_model", @@ -167,9 +155,7 @@ "dataType": "ChatInput", "id": "ChatInput-IRziS", "name": "message", - "output_types": [ - "Message" - ] + "output_types": ["Message"] }, "targetHandle": { "fieldName": "search_query", @@ -192,9 +178,7 @@ "dataType": "AstraDB", "id": "AstraDB-HXAXh", "name": "search_results", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "data", @@ -217,9 +201,7 @@ "dataType": "OpenAIEmbeddings", "id": "OpenAIEmbeddings-d7EtR", "name": "embeddings", - "output_types": [ - "Embeddings" - ] + "output_types": ["Embeddings"] }, "targetHandle": { "fieldName": "embedding_model", @@ -242,9 +224,7 @@ "dataType": "SplitText", "id": "SplitText-HWKil", "name": "chunks", - "output_types": [ - "Data" - ] + "output_types": ["Data"] }, "targetHandle": { "fieldName": "ingest_data", @@ -269,9 +249,7 @@ "display_name": "Chat Input", "id": "ChatInput-IRziS", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -302,9 +280,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -317,9 +293,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -338,9 +312,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -437,10 +409,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -454,9 +423,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -474,9 +441,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -510,9 +475,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -554,9 +517,7 @@ "display_name": "Parse Data", "id": "ParseData-cwmU0", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -564,11 +525,7 @@ "display_name": "Parse Data", "documentation": "", "edited": false, - "field_order": [ - "data", - "template", - "sep" - ], + "field_order": ["data", "template", "sep"], "frozen": false, "icon": "message-square", "legacy": false, @@ -584,9 +541,7 @@ "name": "text", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -597,9 +552,7 @@ "name": "data_list", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -629,9 +582,7 @@ "display_name": "Data", "dynamic": false, "info": "The data to convert to text.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data", "placeholder": "", @@ -664,9 +615,7 @@ "display_name": "Template", "dynamic": false, "info": "The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "multiline": true, @@ -709,25 +658,18 @@ "display_name": "Prompt", "id": "Prompt-wBjYe", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": { - "template": [ - "context", - "question" - ] + "template": ["context", "question"] }, "description": "Create a prompt template with dynamic variables.", "display_name": "Prompt", "documentation": "", "edited": false, "error": null, - "field_order": [ - "template" - ], + "field_order": ["template"], "frozen": false, "full_path": null, "icon": "prompts", @@ -748,9 +690,7 @@ "name": "prompt", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -783,10 +723,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -806,10 +743,7 @@ "fileTypes": [], "file_path": "", "info": "", - "input_types": [ - "Message", - "Text" - ], + "input_types": ["Message", "Text"], "list": false, "load_from_db": false, "multiline": true, @@ -843,9 +777,7 @@ "display_name": "Tool Placeholder", "dynamic": false, "info": "A placeholder input for tool mode.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tool_placeholder", @@ -889,9 +821,7 @@ "display_name": "Split Text", "id": "SplitText-HWKil", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -920,9 +850,7 @@ "name": "chunks", "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -933,9 +861,7 @@ "name": "dataframe", "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -995,9 +921,7 @@ "display_name": "Data Inputs", "dynamic": false, "info": "The data to split.", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": true, "name": "data_inputs", "placeholder": "", @@ -1013,9 +937,7 @@ "display_name": "Separator", "dynamic": false, "info": "The character to split on. Defaults to newline.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "separator", @@ -1131,9 +1053,7 @@ "display_name": "Chat Output", "id": "ChatOutput-D2eyW", "node": { - "base_classes": [ - "Message" - ], + "base_classes": ["Message"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1167,9 +1087,7 @@ "name": "message", "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" } ], @@ -1182,9 +1100,7 @@ "display_name": "Background Color", "dynamic": false, "info": "The background color of the icon.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "background_color", @@ -1204,9 +1120,7 @@ "display_name": "Icon", "dynamic": false, "info": "The icon of the message.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "chat_icon", @@ -1244,9 +1158,7 @@ "display_name": "Data Template", "dynamic": false, "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "data_template", @@ -1266,9 +1178,7 @@ "display_name": "Text", "dynamic": false, "info": "Message to be passed as output.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "input_value", @@ -1289,10 +1199,7 @@ "dynamic": false, "info": "Type of sender.", "name": "sender", - "options": [ - "Machine", - "User" - ], + "options": ["Machine", "User"], "placeholder": "", "required": false, "show": true, @@ -1308,9 +1215,7 @@ "display_name": "Sender Name", "dynamic": false, "info": "Name of the sender.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "sender_name", @@ -1330,9 +1235,7 @@ "display_name": "Session ID", "dynamic": false, "info": "The session ID of the chat. If empty, the current session ID parameter will be used.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "session_id", @@ -1368,9 +1271,7 @@ "display_name": "Text Color", "dynamic": false, "info": "The text color of the name", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "text_color", @@ -1412,9 +1313,7 @@ "data": { "id": "OpenAIEmbeddings-xoSJQ", "node": { - "base_classes": [ - "Embeddings" - ], + "base_classes": ["Embeddings"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1458,14 +1357,10 @@ "display_name": "Embeddings", "method": "build_embeddings", "name": "embeddings", - "required_inputs": [ - "openai_api_key" - ], + "required_inputs": ["openai_api_key"], "selected": "Embeddings", "tool_mode": true, - "types": [ - "Embeddings" - ], + "types": ["Embeddings"], "value": "__UNDEFINED__" } ], @@ -1494,9 +1389,7 @@ "display_name": "Client", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "client", @@ -1566,9 +1459,7 @@ "display_name": "Deployment", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "deployment", @@ -1674,9 +1565,7 @@ "display_name": "OpenAI API Base", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_base", @@ -1696,9 +1585,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "openai_api_key", "password": true, @@ -1715,9 +1602,7 @@ "display_name": "OpenAI API Type", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_type", @@ -1737,9 +1622,7 @@ "display_name": "OpenAI API Version", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_version", @@ -1759,9 +1642,7 @@ "display_name": "OpenAI Organization", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_organization", @@ -1781,9 +1662,7 @@ "display_name": "OpenAI Proxy", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_proxy", @@ -1867,9 +1746,7 @@ "display_name": "TikToken Model Name", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tiktoken_model_name", @@ -1948,9 +1825,7 @@ "data": { "id": "OpenAIEmbeddings-d7EtR", "node": { - "base_classes": [ - "Embeddings" - ], + "base_classes": ["Embeddings"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -1994,14 +1869,10 @@ "display_name": "Embeddings", "method": "build_embeddings", "name": "embeddings", - "required_inputs": [ - "openai_api_key" - ], + "required_inputs": ["openai_api_key"], "selected": "Embeddings", "tool_mode": true, - "types": [ - "Embeddings" - ], + "types": ["Embeddings"], "value": "__UNDEFINED__" } ], @@ -2030,9 +1901,7 @@ "display_name": "Client", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "client", @@ -2102,9 +1971,7 @@ "display_name": "Deployment", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "deployment", @@ -2210,9 +2077,7 @@ "display_name": "OpenAI API Base", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_base", @@ -2232,9 +2097,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "openai_api_key", "password": true, @@ -2251,9 +2114,7 @@ "display_name": "OpenAI API Type", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_type", @@ -2273,9 +2134,7 @@ "display_name": "OpenAI API Version", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_api_version", @@ -2295,9 +2154,7 @@ "display_name": "OpenAI Organization", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_organization", @@ -2317,9 +2174,7 @@ "display_name": "OpenAI Proxy", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "openai_proxy", @@ -2403,9 +2258,7 @@ "display_name": "TikToken Model Name", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "load_from_db": false, "name": "tiktoken_model_name", @@ -2447,9 +2300,7 @@ "data": { "id": "File-4yyks", "node": { - "base_classes": [ - "Data" - ], + "base_classes": ["Data"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -2479,9 +2330,7 @@ "required_inputs": [], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" } ], @@ -2544,10 +2393,7 @@ "display_name": "Server File Path", "dynamic": false, "info": "Data object with a 'file_path' property pointing to server file or a Message object with a path to the file. Supercedes 'Path' but supports same file types.", - "input_types": [ - "Data", - "Message" - ], + "input_types": ["Data", "Message"], "list": true, "name": "file_path", "placeholder": "", @@ -2788,10 +2634,7 @@ "data": { "id": "OpenAIModel-XJ1BC", "node": { - "base_classes": [ - "LanguageModel", - "Message" - ], + "base_classes": ["LanguageModel", "Message"], "beta": false, "category": "models", "conditional_paths": [], @@ -2830,9 +2673,7 @@ "required_inputs": [], "selected": "Message", "tool_mode": true, - "types": [ - "Message" - ], + "types": ["Message"], "value": "__UNDEFINED__" }, { @@ -2841,14 +2682,10 @@ "display_name": "Language Model", "method": "build_model", "name": "model_output", - "required_inputs": [ - "api_key" - ], + "required_inputs": ["api_key"], "selected": "LanguageModel", "tool_mode": true, - "types": [ - "LanguageModel" - ], + "types": ["LanguageModel"], "value": "__UNDEFINED__" } ], @@ -2862,9 +2699,7 @@ "display_name": "OpenAI API Key", "dynamic": false, "info": "The OpenAI API Key to use for the OpenAI model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "load_from_db": true, "name": "api_key", "password": true, @@ -2899,9 +2734,7 @@ "display_name": "Input", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3083,9 +2916,7 @@ "display_name": "System Message", "dynamic": false, "info": "System message to pass to the model.", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3170,10 +3001,7 @@ "data": { "id": "AstraDB-HXAXh", "node": { - "base_classes": [ - "Data", - "DataFrame" - ], + "base_classes": ["Data", "DataFrame"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -3222,9 +3050,7 @@ ], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -3236,9 +3062,7 @@ "required_inputs": [], "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -3617,10 +3441,7 @@ "dynamic": false, "info": "Choose an embedding model or use Astra Vectorize.", "name": "embedding_choice", - "options": [ - "Embedding Model", - "Astra Vectorize" - ], + "options": ["Embedding Model", "Astra Vectorize"], "options_metadata": [], "placeholder": "", "real_time_refresh": true, @@ -3638,9 +3459,7 @@ "display_name": "Embedding Model", "dynamic": false, "info": "Specify the Embedding Model. Not required for Astra Vectorize collections.", - "input_types": [ - "Embeddings" - ], + "input_types": ["Embeddings"], "list": false, "list_add_label": "Add More", "name": "embedding_model", @@ -3696,9 +3515,7 @@ "display_name": "Ingest Data", "dynamic": false, "info": "", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": false, "list_add_label": "Add More", "name": "ingest_data", @@ -3755,9 +3572,7 @@ "display_name": "Search Query", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -3856,10 +3671,7 @@ "data": { "id": "AstraDB-nMlxo", "node": { - "base_classes": [ - "Data", - "DataFrame" - ], + "base_classes": ["Data", "DataFrame"], "beta": false, "conditional_paths": [], "custom_fields": {}, @@ -3908,9 +3720,7 @@ ], "selected": "Data", "tool_mode": true, - "types": [ - "Data" - ], + "types": ["Data"], "value": "__UNDEFINED__" }, { @@ -3922,9 +3732,7 @@ "required_inputs": [], "selected": "DataFrame", "tool_mode": true, - "types": [ - "DataFrame" - ], + "types": ["DataFrame"], "value": "__UNDEFINED__" } ], @@ -4303,10 +4111,7 @@ "dynamic": false, "info": "Choose an embedding model or use Astra Vectorize.", "name": "embedding_choice", - "options": [ - "Embedding Model", - "Astra Vectorize" - ], + "options": ["Embedding Model", "Astra Vectorize"], "options_metadata": [], "placeholder": "", "real_time_refresh": true, @@ -4324,9 +4129,7 @@ "display_name": "Embedding Model", "dynamic": false, "info": "Specify the Embedding Model. Not required for Astra Vectorize collections.", - "input_types": [ - "Embeddings" - ], + "input_types": ["Embeddings"], "list": false, "list_add_label": "Add More", "name": "embedding_model", @@ -4382,9 +4185,7 @@ "display_name": "Ingest Data", "dynamic": false, "info": "", - "input_types": [ - "Data" - ], + "input_types": ["Data"], "list": false, "list_add_label": "Add More", "name": "ingest_data", @@ -4441,9 +4242,7 @@ "display_name": "Search Query", "dynamic": false, "info": "", - "input_types": [ - "Message" - ], + "input_types": ["Message"], "list": false, "list_add_label": "Add More", "load_from_db": false, @@ -4551,10 +4350,5 @@ "is_component": false, "last_tested_version": "1.1.5", "name": "Vector Store RAG", - "tags": [ - "openai", - "astradb", - "rag", - "q-a" - ] -} \ No newline at end of file + "tags": ["openai", "astradb", "rag", "q-a"] +} diff --git a/src/frontend/src/modals/templatesModal/components/TemplateCardComponent/index.tsx b/src/frontend/src/modals/templatesModal/components/TemplateCardComponent/index.tsx index 7c7ba5558..fa3f9932d 100644 --- a/src/frontend/src/modals/templatesModal/components/TemplateCardComponent/index.tsx +++ b/src/frontend/src/modals/templatesModal/components/TemplateCardComponent/index.tsx @@ -43,7 +43,10 @@ export default function TemplateCardComponent({ />
-
+

{ + await awaitBootstrapTest(page); + + await page.getByTestId("side_nav_options_all-templates").click(); + + const numberOfTemplates = await page + .getByTestId("text_card_container") + .count(); + + let numberOfOutdatedComponents = 0; + + for (let i = 0; i < numberOfTemplates; i++) { + const exampleName = await page + .getByTestId("text_card_container") + .nth(i) + .getAttribute("role"); + + await page.getByTestId("text_card_container").nth(i).click(); + + await page.waitForSelector('[data-testid="fit_view"]', { + timeout: 3000, + }); + + if ((await page.getByTestId("update-all-button").count()) > 0) { + console.error(` + --------------------------------------------------------------------------------------- + There's an outdated component on the basic template: ${exampleName} + --------------------------------------------------------------------------------------- + `); + numberOfOutdatedComponents++; + } + + await page.getByTestId("icon-ChevronLeft").click(); + await page.waitForSelector('[data-testid="mainpage_title"]', { + timeout: 3000, + }); + + await page.getByTestId("new-project-btn").first().click(); + + await page.getByTestId("side_nav_options_all-templates").click(); + } + + expect(numberOfOutdatedComponents).toBe(0); + }, +);