shell_gpt
shell_gpt copied to clipboard
Adopt to tool_calls format of oai doc fixing function call bugs and Support for parallel function call
I'm using deepseek api(which is oai compatible), which i found the code fail to return the function call result:
e.g.
UnprocessableEntityError: Failed to deserialize the JSON body into the target type: messages[3].role: unknown variant
function
, expected one ofsystem
,user
,assistant
,tool
at line 1 column 666
which i think is relate to this part of code: https://github.com/TheR1D/shell_gpt/blob/ab6b475c9da1d4b28c16e5fd963fc434fdfd3356/sgpt/handlers/handler.py#L64C1-L82C79
I make some changes to adopt to oai function doc:
`# Create a message containing the result of the function call
function_call_result_message = {
"role": "tool",
"content": json.dumps({
"order_id": order_id,
"delivery_date": delivery_date.strftime('%Y-%m-%d %H:%M:%S')
}),
"tool_call_id": response['choices'][0]['message']['tool_calls'][0]['id']
}`
which indecate that the role should be tool and tool_call_id is needed
after the modification the code work fine and i have run the lint and test