shell_gpt icon indicating copy to clipboard operation
shell_gpt copied to clipboard

Adopt to tool_calls format of oai doc fixing function call bugs and Support for parallel function call

Open whi497 opened this issue 6 months ago • 3 comments

I'm using deepseek api(which is oai compatible), which i found the code fail to return the function call result: e.g. image

UnprocessableEntityError: Failed to deserialize the JSON body into the target type: messages[3].role: unknown variant function, expected one of system, 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

whi497 avatar Aug 19 '24 06:08 whi497