Open
Description
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
@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