feat: Add raw content output for File component (#8515)
* Add raw content output for File component * Update src/backend/base/langflow/base/data/base_file.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
This commit is contained in:
parent
d51d379ab9
commit
b8f72d929d
6 changed files with 5702 additions and 3858 deletions
|
|
@ -175,6 +175,7 @@ class BaseFileComponent(Component, ABC):
|
|||
|
||||
_base_outputs = [
|
||||
Output(display_name="Loaded Files", name="dataframe", method="load_files"),
|
||||
Output(display_name="Raw Content", name="message", method="load_files_message"),
|
||||
]
|
||||
|
||||
@abstractmethod
|
||||
|
|
@ -236,6 +237,26 @@ class BaseFileComponent(Component, ABC):
|
|||
return [Data()]
|
||||
return data_list
|
||||
|
||||
def load_files_message(self) -> Message:
|
||||
"""Load files and return as Message.
|
||||
|
||||
Returns:
|
||||
Message: Message containing all file data
|
||||
"""
|
||||
data_list = self.load_files_core()
|
||||
if not data_list:
|
||||
return Message() # No data -> empty message
|
||||
|
||||
sep: str = getattr(self, "separator", "\n\n") or "\n\n"
|
||||
|
||||
parts: list[str] = []
|
||||
for d in data_list:
|
||||
# Prefer explicit text if available, fall back to full dict, lastly str()
|
||||
text = (getattr(d, "get_text", lambda: None)() or d.data.get("text")) if isinstance(d.data, dict) else None
|
||||
parts.append(text if text is not None else str(d))
|
||||
|
||||
return Message(text=sep.join(parts))
|
||||
|
||||
def load_files(self) -> DataFrame:
|
||||
"""Load files and return as DataFrame.
|
||||
|
||||
|
|
|
|||
|
|
@ -812,6 +812,20 @@
|
|||
"DataFrame"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
},
|
||||
{
|
||||
"allows_loop": false,
|
||||
"cache": true,
|
||||
"display_name": "Raw Content",
|
||||
"group_outputs": false,
|
||||
"method": "load_files_message",
|
||||
"name": "message",
|
||||
"selected": "Message",
|
||||
"tool_mode": true,
|
||||
"types": [
|
||||
"Message"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
}
|
||||
],
|
||||
"pinned": false,
|
||||
|
|
|
|||
|
|
@ -1823,6 +1823,20 @@
|
|||
"DataFrame"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
},
|
||||
{
|
||||
"allows_loop": false,
|
||||
"cache": true,
|
||||
"display_name": "Raw Content",
|
||||
"group_outputs": false,
|
||||
"method": "load_files_message",
|
||||
"name": "message",
|
||||
"selected": "Message",
|
||||
"tool_mode": true,
|
||||
"types": [
|
||||
"Message"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
}
|
||||
],
|
||||
"pinned": false,
|
||||
|
|
|
|||
|
|
@ -181,7 +181,9 @@
|
|||
"dataType": "File",
|
||||
"id": "File-m5GWE",
|
||||
"name": "message",
|
||||
"output_types": []
|
||||
"output_types": [
|
||||
"Message"
|
||||
]
|
||||
},
|
||||
"targetHandle": {
|
||||
"fieldName": "input_value",
|
||||
|
|
@ -195,7 +197,7 @@
|
|||
"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œ: []}",
|
||||
"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œ}"
|
||||
},
|
||||
|
|
@ -207,7 +209,9 @@
|
|||
"dataType": "File",
|
||||
"id": "File-m5GWE",
|
||||
"name": "message",
|
||||
"output_types": []
|
||||
"output_types": [
|
||||
"Message"
|
||||
]
|
||||
},
|
||||
"targetHandle": {
|
||||
"fieldName": "text",
|
||||
|
|
@ -221,7 +225,7 @@
|
|||
"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œ: []}",
|
||||
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-m5GWEœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
||||
"target": "Prompt-AJxY8",
|
||||
"targetHandle": "{œfieldNameœ: œtextœ, œidœ: œPrompt-AJxY8œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
||||
}
|
||||
|
|
@ -274,6 +278,20 @@
|
|||
"DataFrame"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
},
|
||||
{
|
||||
"allows_loop": false,
|
||||
"cache": true,
|
||||
"display_name": "Raw Content",
|
||||
"group_outputs": false,
|
||||
"method": "load_files_message",
|
||||
"name": "message",
|
||||
"selected": "Message",
|
||||
"tool_mode": true,
|
||||
"types": [
|
||||
"Message"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
}
|
||||
],
|
||||
"pinned": false,
|
||||
|
|
|
|||
|
|
@ -2405,6 +2405,20 @@
|
|||
"DataFrame"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
},
|
||||
{
|
||||
"allows_loop": false,
|
||||
"cache": true,
|
||||
"display_name": "Raw Content",
|
||||
"group_outputs": false,
|
||||
"method": "load_files_message",
|
||||
"name": "message",
|
||||
"selected": "Message",
|
||||
"tool_mode": true,
|
||||
"types": [
|
||||
"Message"
|
||||
],
|
||||
"value": "__UNDEFINED__"
|
||||
}
|
||||
],
|
||||
"pinned": false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue