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
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 appelezconvert_timezone()avec les arguments décompressés de l’élément, et stockez le résultat danstimezone_result. - Ajoutez un message de type
'function_call_output'à la liste des messages contenant le résultat deconvert_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)