diff --git a/src/backend/base/langflow/api/v1/chat.py b/src/backend/base/langflow/api/v1/chat.py index ad4b222da..500fab7cb 100644 --- a/src/backend/base/langflow/api/v1/chat.py +++ b/src/backend/base/langflow/api/v1/chat.py @@ -181,13 +181,6 @@ async def build_vertex( inputs_dict=inputs.model_dump() if inputs else {}, files=files, ) - # logs = {} - # if isinstance(vertex.artifacts_raw, dict): - # for key in vertex.artifacts_raw: - # log_obj = Log(message=vertex.artifacts_raw[key], type=vertex.artifacts_type[key]) - # logs[key] = log_obj - # else: - # logs = [Log(message=vertex.artifacts_raw, type=vertex.artifacts_type)] result_data_response = ResultDataResponse.model_validate(result_dict, from_attributes=True) except Exception as exc: diff --git a/src/backend/base/langflow/api/v1/schemas.py b/src/backend/base/langflow/api/v1/schemas.py index 2dde0e286..c44e0f676 100644 --- a/src/backend/base/langflow/api/v1/schemas.py +++ b/src/backend/base/langflow/api/v1/schemas.py @@ -245,7 +245,7 @@ class VerticesOrderResponse(BaseModel): class ResultDataResponse(BaseModel): results: Optional[Any] = Field(default_factory=dict) - logs: dict[str, List[Log] | Log] = Field(default_factory=dict) + logs: dict[str, Log] = Field(default_factory=dict) message: Optional[Any] = Field(default_factory=dict) artifacts: Optional[Any] = Field(default_factory=dict) timedelta: Optional[float] = None diff --git a/src/backend/base/langflow/interface/initialize/loading.py b/src/backend/base/langflow/interface/initialize/loading.py index a8901c2c7..e0ecd5797 100644 --- a/src/backend/base/langflow/interface/initialize/loading.py +++ b/src/backend/base/langflow/interface/initialize/loading.py @@ -157,8 +157,10 @@ async def build_custom_component(params: dict, custom_component: "CustomComponen elif hasattr(raw, "model_dump") and raw is not None: raw = raw.model_dump() + if raw is None and isinstance(build_result, (dict, Data, str)): + raw = build_result.data if isinstance(build_result, Data) else build_result - artifact_type = get_artifact_type(custom_component.repr_value, build_result) + artifact_type = get_artifact_type(custom_component.repr_value or raw, build_result) raw = post_process_raw(raw, artifact_type) artifact = {"repr": custom_repr, "raw": raw, "type": artifact_type} return custom_component, build_result, artifact diff --git a/src/backend/base/langflow/schema/schema.py b/src/backend/base/langflow/schema/schema.py index 30a123f8a..8ac89b805 100644 --- a/src/backend/base/langflow/schema/schema.py +++ b/src/backend/base/langflow/schema/schema.py @@ -1,4 +1,3 @@ -from collections import defaultdict from typing import Any, Literal from typing_extensions import TypedDict @@ -19,7 +18,7 @@ class Log(TypedDict): def build_logs_from_artifacts(artifacts: dict) -> dict: - logs = defaultdict(list) + logs = {} for key in artifacts: message = artifacts[key]["raw"] _type = artifacts[key]["type"] @@ -33,7 +32,7 @@ def build_logs_from_artifacts(artifacts: dict) -> dict: elif _type: log = Log(message=message, type=_type) - logs[key].append(log) + logs[key] = log return logs