Function Calling
Dieser Inhalt ist für v1.0.0. Geh zur neuesten Version, um die aktuellste Dokumentation zu bekommen.
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
Function Calling
Section titled “Function Calling”Function calling lets models generate structured JSON arguments for functions you define, enabling integration with external tools and APIs.
What you’ll learn:
- How to define tools/functions for the model to call
- How to use function calling with the Responses API
- How to extract structured data using JSON Schema
Basic Example
Section titled “Basic Example”from openai import OpenAI
client = OpenAI()
tools = [ { "type": "function", "function": { "name": "get_current_weather", "description": "Get the current weather", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA", }, "format": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "The temperature unit to use.", }, }, "required": ["location", "format"], }, }, },]
messages = [ {"role": "system", "content": "Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous."}, {"role": "user", "content": "What's the weather like today in Hamburg?"},]
response = client.chat.completions.create( model="gpt-4.1", messages=messages, tools=tools,)
print(response.choices[0].message)Example output:
ChatCompletionMessage( content=None, role='assistant', tool_calls=[ ChatCompletionMessageToolCall( id='call_adnFRLazqswLI1ky6FU2O40u', function=Function( arguments='{"location":"Hamburg","format":"celsius"}', name='get_current_weather' ), type='function' ) ])Function Calling with Responses API
Section titled “Function Calling with Responses API”from openai import OpenAI
client = OpenAI()
tools = [ { "type": "function", "name": "get_weather", "description": "Get current temperature for a given location.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "City and country e.g. Bogota, Colombia", } }, "required": ["location"], "additionalProperties": False, }, }]
response = client.responses.create( model="gpt-4.1", input=[{"role": "user", "content": "What is the weather like in Paris today?"}], tools=tools,)
print(response.output)Structured Output (JSON Schema)
Section titled “Structured Output (JSON Schema)”Parse text into a structured schema:
import jsonfrom openai import OpenAI
client = OpenAI()
description = """Our Premium Laptop Backpack features padded compartments that fitlaptops up to 15.6 inches. Available in navy blue, black, and gray.Price: $79.99, on sale for $64.99."""
response = client.responses.create( model="gpt-4.1", input=f"Extract structured product information: {description}", text={ "format": { "type": "json_schema", "name": "product_details", "schema": { "type": "object", "properties": { "product_name": {"type": "string"}, "features": {"type": "array", "items": {"type": "string"}}, "colors": {"type": "array", "items": {"type": "string"}}, "pricing": { "type": "object", "properties": { "regular_price": {"type": "number"}, "sale_price": {"type": "number"}, "currency": {"type": "string"}, }, "required": ["regular_price", "sale_price", "currency"], "additionalProperties": False, }, }, "required": ["product_name", "features", "colors", "pricing"], "additionalProperties": False, }, "strict": True, } },)
print(json.dumps(json.loads(response.output[0].content[0].text), indent=2))Compatibility
Section titled “Compatibility”Next Steps
Section titled “Next Steps”- Streaming — Stream function calling responses in real-time
- Chat Completions — Basic chat API usage
- API Endpoints — Full endpoint reference