Skip to content

[Feature Request] Make flow output json dump configurable to allow object as output #3099

Open
@duongthaiha

Description

@duongthaiha

Is your feature request related to a problem? Please describe.
I want to return an class as output for the python tool however it shows error JSON dump failed: For example for the following code:
it will return an error
image

@dataclass
class ThoughtStep:
    title: str
    description: Optional[Any]
    props: Optional[dict[str, Any]] = None

# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(zone_instruction: str, modify_query:str, answer_question:str) -> list:
    thought_steps = [
        ThoughtStep(title="Look up Zone Instruction", description=zone_instruction, props=None),
        ThoughtStep(title="Modify the query with history and zone instruction", description=modify_query, props=None),
        ThoughtStep(title="Search relevant documentation", description=None, props=None),
        ThoughtStep(title="Answer the questions", description=answer_question, props=None)
    ]
    return thought_steps

Describe the solution you'd like
Allow option to inject how to serialise an complex object

Describe alternatives you've considered
My current work around is to manually use jsonoutput = json.dumps(thought_steps, default=lambda o: o.dict) inside the pythong tool and return a string instead

Additional context
Happy to connect to explain in more detail if it helps

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions