diff --git a/src/backend/langflow/api/v1/schemas.py b/src/backend/langflow/api/v1/schemas.py index 9d8314d48..e28d9bca1 100644 --- a/src/backend/langflow/api/v1/schemas.py +++ b/src/backend/langflow/api/v1/schemas.py @@ -259,7 +259,7 @@ class VerticesBuiltResponse(BaseModel): class InputValueRequest(BaseModel): - components: Optional[List[str]] = None + components: Optional[List[str]] = [] input_value: Optional[str] = None # add an example diff --git a/src/backend/langflow/graph/graph/base.py b/src/backend/langflow/graph/graph/base.py index 96da64eda..f8d20d599 100644 --- a/src/backend/langflow/graph/graph/base.py +++ b/src/backend/langflow/graph/graph/base.py @@ -171,8 +171,7 @@ class Graph: raise ValueError(f"Error running graph: {exc}") from exc # Get the outputs vertex_outputs = [] - for vertex_id in self.vertices: - vertex = self.get_vertex(vertex_id) + for vertex in self.vertices: if vertex is None: raise ValueError(f"Vertex {vertex_id} not found") @@ -202,8 +201,10 @@ class Graph: for input_dict in inputs: components: Union[str, list[str]] = input_dict.get("components", []) - if not isinstance(components, list): - components = [components] + if components and not isinstance(components, list): + raise ValueError(f"Invalid components value: {components}. Expected list") + elif components is None: + components = [] if INPUT_FIELD_NAME not in input_dict: input_value = "" diff --git a/src/backend/langflow/graph/schema.py b/src/backend/langflow/graph/schema.py index a9f06ac1e..cf1afc3fe 100644 --- a/src/backend/langflow/graph/schema.py +++ b/src/backend/langflow/graph/schema.py @@ -13,6 +13,8 @@ class ResultData(BaseModel): messages: Optional[list[ChatOutputResponse]] = Field(default_factory=list) timedelta: Optional[float] = None duration: Optional[str] = None + component_display_name: Optional[str] = None + component_id: Optional[str] = None @field_serializer("results") def serialize_results(self, value): diff --git a/src/backend/langflow/graph/vertex/base.py b/src/backend/langflow/graph/vertex/base.py index 9738b65f5..58f52a522 100644 --- a/src/backend/langflow/graph/vertex/base.py +++ b/src/backend/langflow/graph/vertex/base.py @@ -428,6 +428,8 @@ class Vertex: results=result_dict, artifacts=artifacts, messages=messages, + component_display_name=self.display_name, + component_id=self.id, ) self.set_result(result_dict) diff --git a/src/backend/langflow/processing/process.py b/src/backend/langflow/processing/process.py index 49053e572..9c312a9e0 100644 --- a/src/backend/langflow/processing/process.py +++ b/src/backend/langflow/processing/process.py @@ -272,6 +272,9 @@ def process_tweaks(graph_data: Dict[str, Any], tweaks: Union["Tweaks", Dict[str, :raises ValueError: If the input is not in the expected format. """ + if not isinstance(tweaks, dict): + tweaks = tweaks.model_dump() + nodes = validate_input(graph_data, tweaks) nodes_map = {node.get("id"): node for node in nodes} diff --git a/src/frontend/src/App.tsx b/src/frontend/src/App.tsx index 0af87df78..be45e2eab 100644 --- a/src/frontend/src/App.tsx +++ b/src/frontend/src/App.tsx @@ -103,7 +103,7 @@ export default function App() {