function calling

**Function Calling in LLMs** **What is Function Calling?** Function calling allows LLMs to output structured requests to call external functions/tools, enabling them to take actions and access real-time information. **How It Works** ``` User Query: "What is the weather in Tokyo?" | v LLM: {"function": "get_weather", "arguments": {"location": "Tokyo"}} | v System: Execute function with arguments | v Function Result: {"temp": 22, "condition": "sunny"} | v LLM: "The weather in Tokyo is 22C and sunny." ``` **OpenAI Function Calling** **Define Functions** ```python tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Get current weather for a location", "parameters": { "type": "object", "properties": { "location": {"type": "string", "description": "City name"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location"] } } }] ``` **Call API** ```python response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Weather in Tokyo?"}], tools=tools, tool_choice="auto" ) # Check if model wants to call a function if response.choices[0].message.tool_calls: tool_call = response.choices[0].message.tool_calls[0] function_name = tool_call.function.name arguments = json.loads(tool_call.function.arguments) # Execute function result = execute_function(function_name, arguments) # Send result back to model for final response messages.append(response.choices[0].message) messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(result) }) final = client.chat.completions.create(model="gpt-4o", messages=messages) ``` **Common Function Types** | Category | Examples | |----------|----------| | Information | Web search, database query, API calls | | Computation | Calculator, code execution | | Action | Send email, create event, update record | | Retrieval | RAG search, document lookup | **Best Practices** - Clear, specific function descriptions - Validate function arguments before execution - Handle function errors gracefully - Limit number of available functions (reduce confusion) - Test with adversarial inputs **Open Source Alternatives** | Model | Function Calling Support | |-------|-------------------------| | Llama 3 | Via special tokens/prompts | | Mistral | Native support | | Gorilla | Trained for API calling | | NexusRaven | Function calling focused |

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account