Prev Next

AI / Core OpenAI Codex Application Fundamentals Interview Questions

What is function calling (tool use) in the OpenAI API and how does it work?

Function calling (referred to as tool use in the Responses API) allows you to describe external functions to the model in a structured JSON schema format. The model then decides when and how to call those functions, returning structured arguments you can use to invoke your actual code.

# Chat Completions - function calling
from openai import OpenAI
import json

client = OpenAI()

# 1. Define functions as tools
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "City name"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["city"]
        }
    }
}]

# 2. First call - model decides to call a function
response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
    tools=tools,
    tool_choice="auto",  # "auto" | "required" | {"type":"function","function":{"name":"..."}}
)

# 3. Extract the function call
message = response.choices[0].message
tool_call = message.tool_calls[0]
function_args = json.loads(tool_call.function.arguments)

# 4. Execute your function
weather_result = get_weather(**function_args)  # your actual implementation

# 5. Second call - send function result back
response2 = client.chat.completions.create(
    model="gpt-5.5",
    messages=[
        {"role": "user", "content": "What's the weather in Tokyo?"},
        message,  # assistant turn with tool_calls
        {"role": "tool", "content": json.dumps(weather_result), "tool_call_id": tool_call.id}
    ],
    tools=tools,
)

In the Responses API, the same concept is called tool use and requires less manual state management - you can use previous_response_id to chain turns instead of manually reconstructing the message array.

In the Chat Completions API function calling flow, what role is used when returning a function's result back to the model?
What does setting tool_choice: 'required' do in a Chat Completions API call?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.

Invest now!!! Get Free equity stock (US, UK only)!

Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.

The Robinhood app makes it easy to trade stocks, crypto and more.


Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is OpenAI Codex and how has it evolved from its original form? What are the current recommended models for OpenAI Codex and the API, and when do you choose each? What is the OpenAI Responses API and how does it differ from the Chat Completions API? What are the built-in tools available in the OpenAI Responses API? What is the OpenAI Agents SDK and what are its four core primitives? What is the Codex CLI and what are its key features? What is the Chat Completions API and when should you still use it? What is function calling (tool use) in the OpenAI API and how does it work? What are structured outputs in the OpenAI API and how do you use them? What is the OpenAI Assistants API and what is its deprecation timeline? What is prompt caching in the OpenAI API and how does it reduce costs? What are reasoning models in the OpenAI API and what is the 'effort' parameter? What are OpenAI's key API authentication and security concepts? What are rate limits in the OpenAI API and how do you handle them in production? What is the Batch API and when should you use it? What is streaming in the OpenAI API and how do you implement it? What is OpenAI's Codex Skills feature and what are Automations? What is Model Context Protocol (MCP) and how does it integrate with OpenAI tools? What is fine-tuning in the OpenAI API and when should you use it? What are embeddings in the OpenAI API and what are they used for? What is the OpenAI moderation API and why is it important for application safety? What are OpenAI's image generation models and how do you use them in applications? What is the OpenAI Realtime API and what use cases does it enable? What is retrieval-augmented generation (RAG) and how do you implement it with OpenAI? What is OpenAI's approach to responsible use and safety in the API? What is the OpenAI token system and how do you count and optimise token usage? What are guardrails in the context of OpenAI application development? What is the OpenAI Files API and how is it used for document management? How do you implement multi-agent systems using the OpenAI Agents SDK? What is the OpenAI Evals framework and why is evaluation critical for production applications? How do you implement error handling in OpenAI API applications? What is the OpenAI Codex App and what are its main features for software teams? What are the key differences between OpenAI's o-series reasoning models and the GPT series? How does the Codex IDE extension integrate with development environments? What are the key considerations for building production-grade OpenAI applications? What is the OpenAI Codex and API pricing model and how do you estimate costs? What is the OpenAI computer use capability and what does it enable? How do you use the OpenAI API for code generation, review, and debugging tasks? What is the role of system prompts (instructions) in OpenAI applications and how do you design them effectively? How do you handle context window management in long-running OpenAI applications?
Show more question and Answers...

Database

Comments & Discussions