Tools voor functieroepen: de volledige workflow

Werken met de OpenAI Responses API

James Chapman

AI Curriculum Manager, DataCamp

def convert_currency(amount, from_currency, to_currency):
    url = f"https://api.frankfurter.dev/v1/latest?base={from_currency}&symbols={to_currency}"

    try:
        response = requests.get(url)
        response.raise_for_status()

        data = response.json()
        rate = data['rates'].get(to_currency)

        if rate is None:
            return f"Could not find exchange rate for {from_currency} to {to_currency}"

        converted_amount = amount * rate
        return f"{amount} {from_currency} = {converted_amount:.2f} {to_currency} (Rate: {rate})"

    except requests.exceptions.RequestException as e:
        return f"Error converting currency: {str(e)}"
Werken met de OpenAI Responses API

Tools voor functieroepen

fct6.jpg

Werken met de OpenAI Responses API

Tooldefinities: de handleiding voor een LLM

tools = [

{ "type": "function", "name": "convert_currency", "description": "Converteer een bedrag van de ene naar de andere valuta met realtime wisselkoersen.",
"parameters": { "type": "object",
"properties": {
"amount": {"type": "number", "description": "Het bedrag om te converteren"}, "from_currency": {"type": "string", "description": "De bronvalutacode (bijv. 'USD', 'EUR')"}, "to_currency": {"type": "string", "description": "De doelvalutacode (bijv. 'USD', 'EUR')"}
},
"required": ["amount", "from_currency", "to_currency"], "additionalProperties": False
}
}
]
Werken met de OpenAI Responses API
response = client.responses.create(
    model="gpt-5.4-mini",
    input=[{"role": "user", "content": "How much is $100 in euros?"}],
    tools=tools
)

for item in response.output: print(item)
ResponseReasoningItem(id='rs_0a46aaf8050644c4006924978291a481909d5f50b8b9f7e959',
                      summary=[], type='reasoning', content=None, encrypted_content=None, status=None)

ResponseFunctionToolCall(arguments='{"amount":100,"from_currency":"USD","to_currency":"EUR"}',
                         call_id='call_xTbWJuO6TiuFw84TK0hU9hRT', name='convert_currency',
                         type='function_call',
                         id='fc_0a46aaf8050644c40069249784fa248190874283efa2fc2c46', status='completed')
Werken met de OpenAI Responses API
messages = [{"role": "user", "content": "How much is $100 in euros?"}]

response = client.responses.create( model="gpt-5.5", input=messages, tools=tools )
messages += response.output
Werken met de OpenAI Responses API
for item in response.output:
    if item.type == "function_call":
        if item.name == "convert_currency":

currency_result = convert_currency(**json.loads(item.arguments))
messages.append({ "type": "function_call_output", "call_id": item.call_id, "output": json.dumps({"convert_currency": currency_result}) })
response = client.responses.create( model="gpt-5.4-mini", instructions="Respond to the user input using the tool output.", tools=tools, input=messages, )
Werken met de OpenAI Responses API
print(response.output_text)
100 USD = 86.62 EUR (gebruikt tarief: 1 USD = 0.86625 EUR).

Let op: wisselkoersen schommelen en bedragen kunnen afwijken door kosten of de
provider die je gebruikt. Een ander bedrag of andere valuta omrekenen?
Werken met de OpenAI Responses API

Laten we oefenen!

Werken met de OpenAI Responses API

Preparing Video For Download...