Integrare gli strumenti con Function Calling
Hai creato uno strumento per la conversione del fuso orario usando la funzione convert_timezone() e l'hai definito nel formato degli strumenti di OpenAI. Ora devi implementare l'intero workflow di function calling. Il client è già inizializzato e la lista tools contiene la definizione del tuo strumento di conversione del fuso orario. Anche la funzione convert_timezone() è pronta all'uso.
È stata avviata una lista messages che contiene un input utente che richiede le informazioni sul fuso orario dal tuo strumento convert_timezone.
Questo esercizio fa parte del corso
Lavorare con la Responses API di OpenAI
Istruzioni dell'esercizio
- Cicla sugli elementi di output della prima richiesta a Responses per verificare se contiene una
'function_call'a'convert_timezone'; quindi chiamaconvert_timezone()passando gli argomenti decompattati dall'elemento e salva il risultato intimezone_result. - Aggiungi un messaggio di tipo
'function_call_output'alla lista dei messaggi contenente il risultato diconvert_timezone(). - Crea la richiesta finale a Responses con i messaggi che includono il risultato della funzione e, di nuovo, passando la lista
tools.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
messages = [{"role": "user", "content": "What time is 2:30pm on January 20th in New York in Tokyo time?"}]
response = client.responses.create(model="gpt-5-mini", input=messages, tools=tools)
messages += response.output
# Process function calls and execute the timezone conversion
for item in response.output:
if item.type == "____":
if item.name == "____":
timezone_result = ____(**json.loads(item.arguments))
# Append function output to messages
messages.append({"type": "____", "call_id": item.call_id, "output": json.dumps({"convert_timezone": ____})})
# Make second API request with function results
response = client.responses.create(model="gpt-5-mini", input=____, tools=____)
print(response.output_text)