Integración de herramientas con llamadas a funciones
Has creado una herramienta de conversión de zona horaria usando la función convert_timezone() y la has definido en el formato de herramientas de OpenAI. Ahora necesitas implementar el flujo completo de llamadas a funciones. El client ya está inicializado y la lista tools contiene la definición de tu herramienta de conversión de zona horaria. La función convert_timezone() también está lista para usar.
Se ha iniciado una lista messages que contiene una entrada de usuario que requiere la información de zona horaria de tu herramienta convert_timezone.
Este ejercicio forma parte del curso
Trabajar con la API Responses de OpenAI
Instrucciones del ejercicio
- Recorre los elementos de salida de la primera solicitud de Responses para comprobar si contiene una
'function_call'a'convert_timezone'; luego llama aconvert_timezone()con los argumentos desempaquetados del elemento y guarda el resultado entimezone_result. - Añade un mensaje de tipo
'function_call_output'a la lista de mensajes que contenga el resultado deconvert_timezone(). - Crea la solicitud final de Responses con los mensajes que incluyen el resultado de la función y, de nuevo, pasando la lista
tools.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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.4-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.4-mini", input=____, tools=____)
print(response.output_text)