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 y completa el código de muestra.
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)