Add ListFlows and RunFlow components

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-03-04 10:11:54 -03:00
commit 82bb7dc415
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,19 @@
from typing import List
from langflow import CustomComponent
from langflow.schema import Record
class ListFlowsComponent(CustomComponent):
display_name = "List Flows"
description = "A component to list all available flows."
def build_config(self):
return {}
def build(
self,
) -> List[Record]:
flows = self.list_flows()
self.status = flows
return flows

View file

@ -0,0 +1,43 @@
from typing import List, Optional
from langflow import CustomComponent
from langflow.field_typing import NestedDict, Text
from langflow.graph.schema import ResultData
from langflow.schema import Record
class RunFlowComponent(CustomComponent):
display_name = "Run Flow"
description = "A component to run a flow."
def get_flow_names(self) -> List[str]:
flow_records = self.list_flows()
return [flow_record.data["name"] for flow_record in flow_records]
def build_config(self):
return {
"input_value": {
"display_name": "Input Value",
"multiline": True,
},
"flow_id": {
"display_name": "Flow ID",
"info": "The ID of the flow to run.",
"options": self.get_flow_names,
},
"tweaks": {
"display_name": "Tweaks",
"info": "Tweaks to apply to the flow.",
},
}
async def build(
self, input_value: Text, flow_id: str, tweaks: NestedDict
) -> Record:
input_dict = {"input_value": input_value}
result: List[Optional[ResultData]] = await self.run_flow(
input_value=input_dict, flow_id=flow_id, tweaks=tweaks
)
record = Record(data=result)
self.status = record
return record