Very similar issue in this thread.
TLDR: You can make two API Calls, one to determine which function to call, using a function that takes only one argument that is an enum of function names and a second one using the function_call parameter with the value returned in the previous call.
The detailed explanation can be found here:
https://medium.com/@joanboronatruiz/how-to-force-gpt-models-to-always-use-functions-1e5cca27dd23