ComeçarComece de graça

Integrando ferramentas de function calling

Você criou uma ferramenta de conversão de fuso horário usando a função convert_timezone() e a definiu no formato de ferramenta da OpenAI. Agora, você precisa implementar o fluxo completo de function calling. O client já está inicializado, e a lista tools contém a definição da sua ferramenta de conversão de fuso horário. A função convert_timezone() também está pronta para uso.

Uma lista messages já foi iniciada contendo uma entrada de usuário que precisa das informações de fuso horário da sua ferramenta convert_timezone.

Este exercício faz parte do curso

Trabalhando com a OpenAI Responses API

Ver curso

Instruções do exercício

  • Percorra os itens de saída da primeira requisição do Responses para verificar se há um 'function_call' para 'convert_timezone'; em seguida, chame convert_timezone() com os argumentos desempacotados do item, armazenando o resultado em timezone_result.
  • Adicione uma mensagem do tipo 'function_call_output' à lista de mensagens contendo o resultado de convert_timezone().
  • Crie a requisição final do Responses com as mensagens que incluem o resultado da função e, novamente, passando a lista tools.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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)
Editar e executar o código