I want the arguments of my function to be a list and not a string. I am trying to get the LLM to break the question down and list down a step by step plan. I want the steps to be a list of strings. Can this happen or does this fall under the realm of parallel function calling ? Either way when it does not seem to be doing either. Function calling here uses the pydantic schema right ? but when i give the “type” parameter as list/array it throws an exception
Here is the code im trying to use:
planner_tools = [
{
"type": "function",
"function": {
"name": "plan",
"description": "Break the problem down to much more manageable sub problems. Provide a detailed step by step plan on how to solve it. ",
"parameters": {
"type": "object",
"properties": {
"sub_question": {
"type": "string",
"description": "The sub problem that you are trying to solve. This should be a question that you should get additonal information for",
}
},
"required": ["query"]
}
}
}
]
^ The above is the tool passed to the LLM (im under the pretext that it would atleast breakdown the question and the output would have multiple tool calls each one being a sub question) but it doesnt seem to be working.
A very dirty hack i can think of is making the tool output the steps delimited by some special character and then later split it while processing it but i want this to be the last option
I have a deadline to meet on thursday and any help would be great !