fix: Handle DataFrame serialization and export in langflow.io (#4956)
This commit is contained in:
parent
2f6e4582e8
commit
ee37ce04ef
2 changed files with 6 additions and 1 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
from langflow.inputs import (
|
from langflow.inputs import (
|
||||||
BoolInput,
|
BoolInput,
|
||||||
CodeInput,
|
CodeInput,
|
||||||
|
DataFrameInput,
|
||||||
DataInput,
|
DataInput,
|
||||||
DefaultPromptField,
|
DefaultPromptField,
|
||||||
DictInput,
|
DictInput,
|
||||||
|
|
@ -50,4 +51,5 @@ __all__ = [
|
||||||
"SliderInput",
|
"SliderInput",
|
||||||
"StrInput",
|
"StrInput",
|
||||||
"TableInput",
|
"TableInput",
|
||||||
|
"DataFrameInput",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from pydantic import BaseModel
|
||||||
from typing_extensions import TypedDict
|
from typing_extensions import TypedDict
|
||||||
|
|
||||||
from langflow.schema.data import Data
|
from langflow.schema.data import Data
|
||||||
|
from langflow.schema.dataframe import DataFrame
|
||||||
from langflow.schema.message import Message
|
from langflow.schema.message import Message
|
||||||
from langflow.schema.serialize import recursive_serialize_or_str
|
from langflow.schema.serialize import recursive_serialize_or_str
|
||||||
|
|
||||||
|
|
@ -51,7 +52,7 @@ def get_type(payload):
|
||||||
case dict():
|
case dict():
|
||||||
result = LogType.OBJECT
|
result = LogType.OBJECT
|
||||||
|
|
||||||
case list():
|
case list() | DataFrame():
|
||||||
result = LogType.ARRAY
|
result = LogType.ARRAY
|
||||||
|
|
||||||
case str():
|
case str():
|
||||||
|
|
@ -107,6 +108,8 @@ def build_output_logs(vertex, result) -> dict:
|
||||||
message = ""
|
message = ""
|
||||||
|
|
||||||
case LogType.ARRAY:
|
case LogType.ARRAY:
|
||||||
|
if isinstance(message, DataFrame):
|
||||||
|
message = message.to_dict(orient="records")
|
||||||
message = [recursive_serialize_or_str(item) for item in message]
|
message = [recursive_serialize_or_str(item) for item in message]
|
||||||
name = output.get("name", f"output_{index}")
|
name = output.get("name", f"output_{index}")
|
||||||
outputs |= {name: OutputValue(message=message, type=_type).model_dump()}
|
outputs |= {name: OutputValue(message=message, type=_type).model_dump()}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue