feat: Add FilterDataComponent for filtering Message objects based on a list of strings
This commit is contained in:
parent
22268409ee
commit
d1946fa351
1 changed files with 33 additions and 0 deletions
33
src/backend/base/langflow/components/helpers/FilterData.py
Normal file
33
src/backend/base/langflow/components/helpers/FilterData.py
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
from langflow.custom import Component
|
||||||
|
from langflow.inputs import StrInput
|
||||||
|
from langflow.schema import Data
|
||||||
|
from langflow.template import Input, Output
|
||||||
|
|
||||||
|
|
||||||
|
class FilterDataComponent(Component):
|
||||||
|
display_name = "Filter Message"
|
||||||
|
description = "Filters a Message object based on a list of strings."
|
||||||
|
icon = "filter"
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
Input(name="message", display_name="Message", info="Message object to filter.", input_types=["Message"]),
|
||||||
|
StrInput(
|
||||||
|
name="filter_criteria", display_name="Filter Criteria", info="List of strings to filter by.", is_list=True
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
outputs = [
|
||||||
|
Output(display_name="Filtered Data", name="filtered_data", method="filter_data"),
|
||||||
|
]
|
||||||
|
|
||||||
|
def filter_data(self) -> Data:
|
||||||
|
filter_criteria: List[str] = self.filter_criteria
|
||||||
|
|
||||||
|
# Filter the data
|
||||||
|
filtered = {key: value for key, value in self.message.data.items() if key == filter_criteria}
|
||||||
|
|
||||||
|
# Create a new Data object with the filtered data
|
||||||
|
self.status = filtered
|
||||||
|
return filtered
|
||||||
Loading…
Add table
Add a link
Reference in a new issue