feat: deprecate Parsing component and replace them in starter projects (#6697)

* fix: fixed the parser component

* fix: fixed parser component test

* fix: ruff error

* chore: rename input

* chore: remove beta attribute

* update

* updated template with legacy as true

* updated templates

* [autofix.ci] apply automated fixes

* ✨ (freeze.spec.ts): add new test steps to check sidebar options and legacy switch functionality
✨ (similarity.spec.ts): add new test steps to check sidebar options and legacy switch functionality
✨ (loop-component.spec.ts): add new test steps to check sidebar options and legacy switch functionality, as well as zoom out and expand button modal functionality

* remove-copy-numbers-from-template-titles

* update-blog-writer-template-readme

* update-document-qa-template-notes

* update-market-research-template-notes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* ✨ (filterEdge-shard-0.spec.ts, freeze.spec.ts, Portfolio Website Code Generator.spec.ts, decisionFlow.spec.ts, similarity.spec.ts, generalBugs-shard-9.spec.ts, codeAreaModalComponent.spec.ts, fileUploadComponent.spec.ts, nestedComponent.spec.ts, filterEdge-shard-1.spec.ts, loop-component.spec.ts, generalBugs-shard-12.spec.ts, add-legacy-components.ts): add function to handle legacy components in tests for improved test readability and maintainability

* remove duplicated graph rag template

* update changes

* update Templates with new parser component

* [autofix.ci] apply automated fixes

* fix: remove name attribute

* fix: autofix.ci patch

* ✨ (stop-building.spec.ts): add new function addLegacyComponents to include legacy components in the test scenario
🔧 (decisionFlow.spec.ts): increase timeout from 500ms to 2000ms for better stability and reliability in waiting for selectors to appear

---------

Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
This commit is contained in:
Edwin Jose 2025-03-31 12:57:30 -04:00 • committed by GitHub
commit 017a0a463b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 4022 additions and 3811 deletions

View file

@ -10,6 +10,7 @@ class ParseDataComponent(Component):
description = "Convert Data objects into Messages using any {field_name} from input data."
icon = "message-square"
name = "ParseData"
legacy = True
metadata = {
"legacy_name": "Parse Data",
}

View file

@ -11,6 +11,7 @@ class ParseDataFrameComponent(Component):
)
icon = "braces"
name = "ParseDataFrame"
legacy = True
inputs = [
DataFrameInput(name="df", display_name="DataFrame", info="The DataFrame to convert to text rows."),

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,69 +1,13 @@
{
"data": {
"edges": [
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "File",
"id": "File-Ktatn",
"name": "data",
"output_types": [
"Data"
]
},
"targetHandle": {
"fieldName": "data",
"id": "ParseData-gouVC",
"inputTypes": [
"Data"
],
"type": "other"
}
},
"id": "reactflow__edge-File-Ktatn{œdataTypeœ:œFileœ,œidœ:œFile-Ktatnœ,œnameœ:œdataœ,œoutput_typesœ:[œDataœ]}-ParseData-gouVC{œfieldNameœ:œdataœ,œidœ:œParseData-gouVCœ,œinputTypesœ:[œDataœ],œtypeœ:œotherœ}",
"selected": false,
"source": "File-Ktatn",
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-Ktatnœ, œnameœ: œdataœ, œoutput_typesœ: [œDataœ]}",
"target": "ParseData-gouVC",
"targetHandle": "{œfieldNameœ: œdataœ, œidœ: œParseData-gouVCœ, œinputTypesœ: [œDataœ], œtypeœ: œotherœ}"
},
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "ParseData",
"id": "ParseData-gouVC",
"name": "text",
"output_types": [
"Message"
]
},
"targetHandle": {
"fieldName": "text",
"id": "Prompt-epiSD",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-ParseData-gouVC{œdataTypeœ:œParseDataœ,œidœ:œParseData-gouVCœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-Prompt-epiSD{œfieldNameœ:œtextœ,œidœ:œPrompt-epiSDœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "ParseData-gouVC",
"sourceHandle": "{œdataTypeœ: œParseDataœ, œidœ: œParseData-gouVCœ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}",
"target": "Prompt-epiSD",
"targetHandle": "{œfieldNameœ: œtextœ, œidœ: œPrompt-epiSDœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "Prompt",
"id": "Prompt-epiSD",
"id": "Prompt-AJxY8",
"name": "prompt",
"output_types": [
"Message"
@ -71,19 +15,19 @@
},
"targetHandle": {
"fieldName": "system_message",
"id": "OpenAIModel-ppS3O",
"id": "OpenAIModel-zVeWr",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-Prompt-epiSD{œdataTypeœ:œPromptœ,œidœ:œPrompt-epiSDœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-ppS3O{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-ppS3Oœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"id": "reactflow__edge-Prompt-AJxY8{œdataTypeœ:œPromptœ,œidœ:œPrompt-AJxY8œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-zVeWr{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-zVeWrœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "Prompt-epiSD",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-epiSDœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-ppS3O",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-ppS3Oœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
"source": "Prompt-AJxY8",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-AJxY8œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-zVeWr",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-zVeWrœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
@ -91,7 +35,7 @@
"data": {
"sourceHandle": {
"dataType": "OpenAIModel",
"id": "OpenAIModel-ppS3O",
"id": "OpenAIModel-zVeWr",
"name": "text_output",
"output_types": [
"Message"
@ -99,19 +43,19 @@
},
"targetHandle": {
"fieldName": "summary",
"id": "Prompt-l9XAo",
"id": "Prompt-nmNbi",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-OpenAIModel-ppS3O{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-ppS3Oœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-l9XAo{œfieldNameœ:œsummaryœ,œidœ:œPrompt-l9XAoœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"id": "reactflow__edge-OpenAIModel-zVeWr{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-zVeWrœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-nmNbi{œfieldNameœ:œsummaryœ,œidœ:œPrompt-nmNbiœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "OpenAIModel-ppS3O",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-ppS3Oœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "Prompt-l9XAo",
"targetHandle": "{œfieldNameœ: œsummaryœ, œidœ: œPrompt-l9XAoœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
"source": "OpenAIModel-zVeWr",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-zVeWrœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "Prompt-nmNbi",
"targetHandle": "{œfieldNameœ: œsummaryœ, œidœ: œPrompt-nmNbiœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
@ -119,7 +63,7 @@
"data": {
"sourceHandle": {
"dataType": "Prompt",
"id": "Prompt-l9XAo",
"id": "Prompt-nmNbi",
"name": "prompt",
"output_types": [
"Message"
@ -127,19 +71,19 @@
},
"targetHandle": {
"fieldName": "system_message",
"id": "OpenAIModel-DxfrQ",
"id": "OpenAIModel-Izkdb",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-Prompt-l9XAo{œdataTypeœ:œPromptœ,œidœ:œPrompt-l9XAoœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-DxfrQ{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-DxfrQœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"id": "reactflow__edge-Prompt-nmNbi{œdataTypeœ:œPromptœ,œidœ:œPrompt-nmNbiœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-Izkdb{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-Izkdbœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "Prompt-l9XAo",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-l9XAoœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-DxfrQ",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-DxfrQœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
"source": "Prompt-nmNbi",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-nmNbiœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-Izkdb",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-Izkdbœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
@ -147,7 +91,7 @@
"data": {
"sourceHandle": {
"dataType": "Prompt",
"id": "Prompt-LKleN",
"id": "Prompt-LXvg7",
"name": "prompt",
"output_types": [
"Message"
@ -155,47 +99,19 @@
},
"targetHandle": {
"fieldName": "system_message",
"id": "OpenAIModel-W1vhv",
"id": "OpenAIModel-Hl8vG",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-Prompt-LKleN{œdataTypeœ:œPromptœ,œidœ:œPrompt-LKleNœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-W1vhv{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-W1vhvœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"id": "reactflow__edge-Prompt-LXvg7{œdataTypeœ:œPromptœ,œidœ:œPrompt-LXvg7œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-Hl8vG{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-Hl8vGœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "Prompt-LKleN",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-LKleNœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-W1vhv",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-W1vhvœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "ParseData",
"id": "ParseData-gouVC",
"name": "text",
"output_types": [
"Message"
]
},
"targetHandle": {
"fieldName": "input_value",
"id": "OpenAIModel-W1vhv",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "reactflow__edge-ParseData-gouVC{œdataTypeœ:œParseDataœ,œidœ:œParseData-gouVCœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-W1vhv{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-W1vhvœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "ParseData-gouVC",
"sourceHandle": "{œdataTypeœ: œParseDataœ, œidœ: œParseData-gouVCœ, œnameœ: œtextœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-W1vhv",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-W1vhvœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
"source": "Prompt-LXvg7",
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-LXvg7œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-Hl8vG",
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-Hl8vGœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
@ -203,7 +119,7 @@
"data": {
"sourceHandle": {
"dataType": "OpenAIModel",
"id": "OpenAIModel-W1vhv",
"id": "OpenAIModel-Hl8vG",
"name": "text_output",
"output_types": [
"Message"
@ -211,7 +127,7 @@
},
"targetHandle": {
"fieldName": "input_value",
"id": "ChatOutput-V5ZFA",
"id": "ChatOutput-NS8z5",
"inputTypes": [
"Data",
"DataFrame",
@ -220,12 +136,12 @@
"type": "other"
}
},
"id": "reactflow__edge-OpenAIModel-W1vhv{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-W1vhvœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-V5ZFA{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-V5ZFAœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
"id": "reactflow__edge-OpenAIModel-Hl8vG{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-Hl8vGœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-NS8z5{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-NS8z5œ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
"selected": false,
"source": "OpenAIModel-W1vhv",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-W1vhvœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "ChatOutput-V5ZFA",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-V5ZFAœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
"source": "OpenAIModel-Hl8vG",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-Hl8vGœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "ChatOutput-NS8z5",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-NS8z5œ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
},
{
"animated": false,
@ -233,7 +149,7 @@
"data": {
"sourceHandle": {
"dataType": "OpenAIModel",
"id": "OpenAIModel-DxfrQ",
"id": "OpenAIModel-Izkdb",
"name": "text_output",
"output_types": [
"Message"
@ -241,7 +157,7 @@
},
"targetHandle": {
"fieldName": "input_value",
"id": "ChatOutput-8y94b",
"id": "ChatOutput-GzAXT",
"inputTypes": [
"Data",
"DataFrame",
@ -250,18 +166,74 @@
"type": "other"
}
},
"id": "reactflow__edge-OpenAIModel-DxfrQ{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-DxfrQœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-8y94b{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-8y94bœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
"id": "reactflow__edge-OpenAIModel-Izkdb{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-Izkdbœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-GzAXT{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-GzAXTœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
"selected": false,
"source": "OpenAIModel-DxfrQ",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-DxfrQœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "ChatOutput-8y94b",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-8y94bœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
"source": "OpenAIModel-Izkdb",
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-Izkdbœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
"target": "ChatOutput-GzAXT",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-GzAXTœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
},
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "File",
"id": "File-m5GWE",
"name": "message",
"output_types": [
"Message"
]
},
"targetHandle": {
"fieldName": "input_value",
"id": "OpenAIModel-Hl8vG",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "xy-edge__File-m5GWE{œdataTypeœ:œFileœ,œidœ:œFile-m5GWEœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-Hl8vG{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-Hl8vGœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "File-m5GWE",
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-m5GWEœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
"target": "OpenAIModel-Hl8vG",
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-Hl8vGœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
},
{
"animated": false,
"className": "",
"data": {
"sourceHandle": {
"dataType": "File",
"id": "File-m5GWE",
"name": "message",
"output_types": [
"Message"
]
},
"targetHandle": {
"fieldName": "text",
"id": "Prompt-AJxY8",
"inputTypes": [
"Message"
],
"type": "str"
}
},
"id": "xy-edge__File-m5GWE{œdataTypeœ:œFileœ,œidœ:œFile-m5GWEœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-AJxY8{œfieldNameœ:œtextœ,œidœ:œPrompt-AJxY8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
"selected": false,
"source": "File-m5GWE",
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-m5GWEœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
"target": "Prompt-AJxY8",
"targetHandle": "{œfieldNameœ: œtextœ, œidœ: œPrompt-AJxY8œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
}
],
"nodes": [
{
"data": {
"id": "File-Ktatn",
"id": "File-m5GWE",
"node": {
"base_classes": [
"Data"
@ -481,7 +453,7 @@
"bz2",
"gz"
],
"file_path": "43bb2a52-8dbf-4edf-a200-c54ee0e7fa1f\\2025-02-21_09-35-24_messages.json",
"file_path": [],
"info": "Supported file extensions: txt, md, mdx, csv, json, yaml, yml, xml, html, htm, pdf, docx, py, sh, sql, js, ts, tsx; optionally bundled in file extensions: zip, tar, tgz, bz2, gz",
"list": true,
"list_add_label": "Add More",
@ -556,183 +528,21 @@
"type": "File"
},
"dragging": false,
"id": "File-Ktatn",
"id": "File-m5GWE",
"measured": {
"height": 228,
"height": 336,
"width": 320
},
"position": {
"x": -2423.1133566137846,
"y": 736.6681755311793
"x": -2283.1962393600293,
"y": 660.3497479382216
},
"selected": false,
"type": "genericNode"
},
{
"data": {
"id": "ParseData-gouVC",
"node": {
"base_classes": [
"Data",
"Message"
],
"beta": false,
"conditional_paths": [],
"custom_fields": {},
"description": "Convert Data objects into Messages using any {field_name} from input data.",
"display_name": "Data to Message",
"documentation": "",
"edited": false,
"field_order": [
"data",
"template",
"sep"
],
"frozen": false,
"icon": "message-square",
"legacy": false,
"lf_version": "1.2.0",
"metadata": {
"legacy_name": "Parse Data"
},
"minimized": false,
"output_types": [],
"outputs": [
{
"allows_loop": false,
"cache": true,
"display_name": "Message",
"method": "parse_data",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
"value": "__UNDEFINED__"
},
{
"allows_loop": false,
"cache": true,
"display_name": "Data List",
"method": "parse_data_as_list",
"name": "data_list",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
"value": "__UNDEFINED__"
}
],
"pinned": false,
"template": {
"_type": "Component",
"code": {
"advanced": true,
"dynamic": true,
"fileTypes": [],
"file_path": "",
"info": "",
"list": false,
"load_from_db": false,
"multiline": true,
"name": "code",
"password": false,
"placeholder": "",
"required": true,
"show": true,
"title_case": false,
"type": "code",
"value": "from langflow.custom import Component\nfrom langflow.helpers.data import data_to_text, data_to_text_list\nfrom langflow.io import DataInput, MultilineInput, Output, StrInput\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\n\n\nclass ParseDataComponent(Component):\n display_name = \"Data to Message\"\n description = \"Convert Data objects into Messages using any {field_name} from input data.\"\n icon = \"message-square\"\n name = \"ParseData\"\n metadata = {\n \"legacy_name\": \"Parse Data\",\n }\n\n inputs = [\n DataInput(\n name=\"data\",\n display_name=\"Data\",\n info=\"The data to convert to text.\",\n is_list=True,\n required=True,\n ),\n MultilineInput(\n name=\"template\",\n display_name=\"Template\",\n info=\"The template to use for formatting the data. \"\n \"It can contain the keys {text}, {data} or any other key in the Data.\",\n value=\"{text}\",\n required=True,\n ),\n StrInput(name=\"sep\", display_name=\"Separator\", advanced=True, value=\"\\n\"),\n ]\n\n outputs = [\n Output(\n display_name=\"Message\",\n name=\"text\",\n info=\"Data as a single Message, with each input Data separated by Separator\",\n method=\"parse_data\",\n ),\n Output(\n display_name=\"Data List\",\n name=\"data_list\",\n info=\"Data as a list of new Data, each having `text` formatted by Template\",\n method=\"parse_data_as_list\",\n ),\n ]\n\n def _clean_args(self) -> tuple[list[Data], str, str]:\n data = self.data if isinstance(self.data, list) else [self.data]\n template = self.template\n sep = self.sep\n return data, template, sep\n\n def parse_data(self) -> Message:\n data, template, sep = self._clean_args()\n result_string = data_to_text(template, data, sep)\n self.status = result_string\n return Message(text=result_string)\n\n def parse_data_as_list(self) -> list[Data]:\n data, template, _ = self._clean_args()\n text_list, data_list = data_to_text_list(template, data)\n for item, text in zip(data_list, text_list, strict=True):\n item.set_text(text)\n self.status = data_list\n return data_list\n"
},
"data": {
"_input_type": "DataInput",
"advanced": false,
"display_name": "Data",
"dynamic": false,
"info": "The data to convert to text.",
"input_types": [
"Data"
],
"list": true,
"list_add_label": "Add More",
"name": "data",
"placeholder": "",
"required": true,
"show": true,
"title_case": false,
"tool_mode": false,
"trace_as_input": true,
"trace_as_metadata": true,
"type": "other",
"value": ""
},
"sep": {
"_input_type": "StrInput",
"advanced": true,
"display_name": "Separator",
"dynamic": false,
"info": "",
"list": false,
"list_add_label": "Add More",
"load_from_db": false,
"name": "sep",
"placeholder": "",
"required": false,
"show": true,
"title_case": false,
"tool_mode": false,
"trace_as_metadata": true,
"type": "str",
"value": "\n"
},
"template": {
"_input_type": "MultilineInput",
"advanced": false,
"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"
],
"list": false,
"list_add_label": "Add More",
"load_from_db": false,
"multiline": true,
"name": "template",
"placeholder": "",
"required": true,
"show": true,
"title_case": false,
"tool_mode": false,
"trace_as_input": true,
"trace_as_metadata": true,
"type": "str",
"value": "list of messages details: {file_path}"
}
},
"tool_mode": false
},
"showNode": true,
"type": "ParseData"
},
"dragging": false,
"id": "ParseData-gouVC",
"measured": {
"height": 342,
"width": 320
},
"position": {
"x": -2048.092643605176,
"y": 650.2904629519279
},
"selected": false,
"type": "genericNode"
},
{
"data": {
"id": "Prompt-l9XAo",
"id": "Prompt-nmNbi",
"node": {
"base_classes": [
"Message"
@ -871,9 +681,9 @@
"type": "Prompt"
},
"dragging": false,
"id": "Prompt-l9XAo",
"id": "Prompt-nmNbi",
"measured": {
"height": 339,
"height": 413,
"width": 320
},
"position": {
@ -885,7 +695,7 @@
},
{
"data": {
"id": "Prompt-epiSD",
"id": "Prompt-AJxY8",
"node": {
"base_classes": [
"Message"
@ -1024,9 +834,9 @@
"type": "Prompt"
},
"dragging": false,
"id": "Prompt-epiSD",
"id": "Prompt-AJxY8",
"measured": {
"height": 339,
"height": 413,
"width": 320
},
"position": {
@ -1038,7 +848,7 @@
},
{
"data": {
"id": "OpenAIModel-ppS3O",
"id": "OpenAIModel-zVeWr",
"node": {
"base_classes": [
"LanguageModel",
@ -1117,7 +927,7 @@
"input_types": [
"Message"
],
"load_from_db": false,
"load_from_db": true,
"name": "api_key",
"password": true,
"placeholder": "",
@ -1406,9 +1216,9 @@
"type": "OpenAIModel"
},
"dragging": false,
"id": "OpenAIModel-ppS3O",
"id": "OpenAIModel-zVeWr",
"measured": {
"height": 656,
"height": 525,
"width": 320
},
"position": {
@ -1420,7 +1230,7 @@
},
{
"data": {
"id": "OpenAIModel-DxfrQ",
"id": "OpenAIModel-Izkdb",
"node": {
"base_classes": [
"LanguageModel",
@ -1499,7 +1309,7 @@
"input_types": [
"Message"
],
"load_from_db": false,
"load_from_db": true,
"name": "api_key",
"password": true,
"placeholder": "",
@ -1788,9 +1598,9 @@
"type": "OpenAIModel"
},
"dragging": false,
"id": "OpenAIModel-DxfrQ",
"id": "OpenAIModel-Izkdb",
"measured": {
"height": 656,
"height": 525,
"width": 320
},
"position": {
@ -1802,7 +1612,7 @@
},
{
"data": {
"id": "Prompt-LKleN",
"id": "Prompt-LXvg7",
"node": {
"base_classes": [
"Message"
@ -1917,9 +1727,9 @@
"type": "Prompt"
},
"dragging": false,
"id": "Prompt-LKleN",
"id": "Prompt-LXvg7",
"measured": {
"height": 256,
"height": 330,
"width": 320
},
"position": {
@ -1931,7 +1741,7 @@
},
{
"data": {
"id": "OpenAIModel-W1vhv",
"id": "OpenAIModel-Hl8vG",
"node": {
"base_classes": [
"LanguageModel",
@ -2010,7 +1820,7 @@
"input_types": [
"Message"
],
"load_from_db": false,
"load_from_db": true,
"name": "api_key",
"password": true,
"placeholder": "",
@ -2299,9 +2109,9 @@
"type": "OpenAIModel"
},
"dragging": false,
"id": "OpenAIModel-W1vhv",
"id": "OpenAIModel-Hl8vG",
"measured": {
"height": 656,
"height": 525,
"width": 320
},
"position": {
@ -2313,7 +2123,7 @@
},
{
"data": {
"id": "note-oqDGB",
"id": "note-D3g3A",
"node": {
"description": "# Sentiment Analysis Flow \n\nThis flow processes text data, analyzes sentiment, and provides structured insights. \n\n## Prerequisite\n\n* [OpenAI API key](https://platform.openai.com/docs/)\n\n## Quickstart\n\n1. Add your [OpenAI API key](https://platform.openai.com/docs/) to the OpenAI model components.\n2. In the **File Component**, load text data in `.txt`, `.csv`, or `.json` formats.\n3. Open the **Playground** to see the analysis and recommendation the flow constructs.\n\n## How It Works \n\n1. The **Data to Message** component converts raw data into structured messages. \n\n2. The **NLP expert** prompt provides sentiment analysis, while the **Analyzing messages** prompt summarizes messages from a discussion board.\n\n3. The final **Prompt Component** creates a structured recommendation prompt to ensure that the AI model receives well-formatted input. \n\n4. The **OpenAI Model Component** processes the text and classifies the sentiment as **Positive, Neutral, or Negative**. \n\n",
"display_name": "",
@ -2324,7 +2134,7 @@
},
"dragging": false,
"height": 574,
"id": "note-oqDGB",
"id": "note-D3g3A",
"measured": {
"height": 574,
"width": 413
@ -2340,7 +2150,7 @@
},
{
"data": {
"id": "ChatOutput-V5ZFA",
"id": "ChatOutput-NS8z5",
"node": {
"base_classes": [
"Message"
@ -2633,7 +2443,7 @@
"type": "ChatOutput"
},
"dragging": false,
"id": "ChatOutput-V5ZFA",
"id": "ChatOutput-NS8z5",
"measured": {
"height": 192,
"width": 320
@ -2647,7 +2457,7 @@
},
{
"data": {
"id": "ChatOutput-8y94b",
"id": "ChatOutput-GzAXT",
"node": {
"base_classes": [
"Message"
@ -2940,7 +2750,7 @@
"type": "ChatOutput"
},
"dragging": false,
"id": "ChatOutput-8y94b",
"id": "ChatOutput-GzAXT",
"measured": {
"height": 192,
"width": 320
@ -2954,7 +2764,7 @@
},
{
"data": {
"id": "note-fOJpn",
"id": "note-Sg6zZ",
"node": {
"description": "### 💡 Add your OpenAI API key here 👇",
"display_name": "",
@ -2967,7 +2777,7 @@
},
"dragging": false,
"height": 326,
"id": "note-fOJpn",
"id": "note-Sg6zZ",
"measured": {
"height": 326,
"width": 352
@ -2983,7 +2793,7 @@
},
{
"data": {
"id": "note-PJ0gY",
"id": "note-oCG60",
"node": {
"description": "### 💡 Add your OpenAI API key here 👇",
"display_name": "",
@ -2995,7 +2805,7 @@
"type": "note"
},
"dragging": false,
"id": "note-PJ0gY",
"id": "note-oCG60",
"measured": {
"height": 324,
"width": 324
@ -3009,7 +2819,7 @@
},
{
"data": {
"id": "note-yzNaN",
"id": "note-hEufz",
"node": {
"description": "### 💡 Add your OpenAI API key here 👇",
"display_name": "",
@ -3021,7 +2831,7 @@
"type": "note"
},
"dragging": false,
"id": "note-yzNaN",
"id": "note-hEufz",
"measured": {
"height": 324,
"width": 324
@ -3030,19 +2840,19 @@
"x": -1309.8036340068625,
"y": 925.6888138443481
},
"selected": true,
"selected": false,
"type": "noteNode"
}
],
"viewport": {
"x": 1436.086487750284,
"y": 17.453112924488266,
"zoom": 0.48563499996133874
"x": 1195.5900912340421,
"y": 170.90395042473165,
"zoom": 0.5503258036709812
}
},
"description": "Load text data from various file formats, process it into structured messages, and analyze sentiment using AI-powered classification.",
"endpoint_name": null,
"id": "4d068861-cb44-46b0-a70f-15467baab096",
"id": "ee875a1c-3b8a-4500-8a6b-bb5d1534b5de",
"is_component": false,
"last_tested_version": "1.2.0",
"name": "Text Sentiment Analysis",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long