EmpezarEmpieza gratis

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

Ver curso

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 a convert_timezone() con los argumentos desempaquetados del elemento y guarda el resultado en timezone_result.
  • Añade un mensaje de tipo 'function_call_output' a la lista de mensajes que contenga el resultado de convert_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)
Editar y ejecutar código