CommencerCommencer gratuitement

Intégrer des outils avec appel de fonction

Vous avez créé un outil de conversion de fuseau horaire avec la fonction convert_timezone() et vous l’avez défini au format d’outil d’OpenAI. Vous devez maintenant implémenter le workflow complet d’appel de fonction. Le client est déjà initialisé, et la liste tools contient la définition de votre outil de conversion de fuseau horaire. La fonction convert_timezone() est aussi prête à l’emploi.

Une liste messages a été commencée avec une entrée utilisateur qui nécessite les informations de fuseau horaire fournies par votre outil convert_timezone.

Cet exercice fait partie du cours

Travailler avec l’API OpenAI Responses

Afficher le cours

Instructions

  • Parcourez les éléments de sortie de la première requête Responses pour vérifier s’il contient un 'function_call' vers 'convert_timezone' ; puis appelez convert_timezone() avec les arguments décompressés de l’élément, et stockez le résultat dans timezone_result.
  • Ajoutez un message de type 'function_call_output' à la liste des messages contenant le résultat de convert_timezone().
  • Créez la requête finale Responses avec les messages contenant le résultat de la fonction et, de nouveau, en passant la liste tools.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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)
Modifier et exécuter le code