While not ideal, could a workaround be to ask in spoken language first, and then ask to format it in JSON?
That’s what we have been doing. Two passes. The task and then the format.
Using OpenAI Function Calls or asking for JSON in the prompt?
I have noticed it in both but have been working with json output before function calling was introduced so I have more evidence on that side. The times I have tried to implement it in a function call I was equally unimpressed with it.