Concevoir des systèmes d’IA avec l’API OpenAI
Francesca Donadoni
Curriculum Manager, DataCamp

import requests
url = "https://api.artic.edu/api/v1/artworks/search"
querystring = {"q":keyword}
response = requests.request("GET", url, params=querystring)
import requests
def get_artwork(keyword):
url = "https://api.artic.edu/api/v1/artworks/search"
querystring = {"q":keyword}
response = requests.request("GET", url, params=querystring)
return response.text
response = client.chat.completions.create( model="gpt-4o-mini",messages=[ {"role": "system", "content": "Vous êtes un assistant IA, spécialiste de l’histoire de l’art. Vous devez interpréter la demande utilisateur et en extraire un mot-clé pour recommander des œuvres selon ses préférences."},{"role": "user", "content": "Je dispose de peu de temps pour visiter le musée et j’aimerais des recommandations. J’aime le bord de mer et les lieux calmes."} ],
function_definition=[{"type": "function", "function" : { "name": "get_artwork", "description": "Cette fonction appelle l’API de l’Art Institute of Chicago pour trouver des œuvres correspondant à un mot-clé", "parameters": {"type": "object", "properties": { "artwork keyword": { "type": "string", "description": "Le mot-clé à transmettre à la fonction get_artwork."}}}, "result": {"type": "string"} }} ] )
import jsonif response.choices[0].finish_reason=='tool_calls': function_call = response.choices[0].message.tool_calls[0].functionif function_call.name == "get_artwork": artwork_keyword = json.loads(function_call.arguments)["artwork keyword"] artwork = get_artwork(artwork_keyword)if artwork: print(f"Voici quelques recommandations : {[i['title'] for i in json.loads(artwork)['data']]}") else: print("Désolé, je n’ai pas pu faire de recommandations à partir de la demande.")else: print("Désolé, je n’ai pas trouvé d’œuvre d’art.")else: print("Désolé, je n’ai pas compris votre demande.")
Voici quelques recommandations : ['Seaside, Port of Honfleur',
'Little Landscape at the Seaside (Kleine Landschaft am Meer)',
'Museum of Contemporary Art, Niterói, Rio de Janeiro, Brazil, Four Sketches',
'A seaside outing', 'Stacks of Wheat (End of Day, Autumn)', 'Stack of Wheat',
'Stacks of Wheat (Sunset, Snow Effect)', 'Stacks of Wheat (End of Summer)',
'Stack of Wheat (Thaw, Sunset)', 'Waitress at a Seaside Teahouse']

Concevoir des systèmes d’IA avec l’API OpenAI