OpenAI GPT Chat Completions API - Function Calling Explained - How does it work?