diff --git a/src/backend/langflow/services/monitor/schema.py b/src/backend/langflow/services/monitor/schema.py index a9ef57d52..e9c380a10 100644 --- a/src/backend/langflow/services/monitor/schema.py +++ b/src/backend/langflow/services/monitor/schema.py @@ -47,7 +47,7 @@ class MessageModel(BaseModel): class VertexBuildModel(BaseModel): - index: Optional[int] = Field(default=None, alias="index") + index: Optional[int] = Field(default=None, alias="index", exclude=True) id: Optional[str] = Field(default=None, alias="id") flow_id: str valid: bool @@ -80,3 +80,17 @@ class VertexBuildModel(BaseModel): if isinstance(v, str): return json.loads(v) return v + + +class VertexBuildMapModel(BaseModel): + vertex_builds: dict[str, list[VertexBuildModel]] + + @classmethod + def from_list_of_dicts(cls, vertex_build_dicts): + vertex_build_map = {} + for vertex_build_dict in vertex_build_dicts: + vertex_build = VertexBuildModel(**vertex_build_dict) + if vertex_build.id not in vertex_build_map: + vertex_build_map[vertex_build.id] = [] + vertex_build_map[vertex_build.id].append(vertex_build) + return cls(vertex_builds=vertex_build_map)