Externe API's aanroepen

AI-systemen ontwikkelen met de OpenAI API

Francesca Donadoni

Curriculum Manager, DataCamp

Python requests-bibliotheek voor API's

Een schema dat een verzoek aan de Art Institute of Chicago API toont

AI-systemen ontwikkelen met de OpenAI API

Python requests-bibliotheek voor API's

  • Importeer de bibliotheek
    import requests
    
  • Geef een URL op
    url = "https://api.artic.edu/api/v1/artworks/search"
    
  • Geef queryparameters op
    querystring = {"q":keyword}
    
  • Haal de response op
    response = requests.request("GET", url, params=querystring)
    
1 https://api.artic.edu/docs/#quick-start
AI-systemen ontwikkelen met de OpenAI API

De functie verpakken

 

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
AI-systemen ontwikkelen met de OpenAI API

Context toevoegen

response = client.chat.completions.create(
    model="gpt-4o-mini",

messages=[ {"role": "system", "content": "You are an AI assistant, a specialist in history of art. You should interpret the user prompt, and based on it extract one keyword for recommending artwork related to their preference."},
{"role": "user", "content": "I don't have much time to visit the museum and would like some recommendations. I like the seaside and quiet places."} ],
AI-systemen ontwikkelen met de OpenAI API

De functie toevoegen aan tools

    function_definition=[{"type": "function",
            "function" : {
                "name": "get_artwork",
                "description": "This function calls the Art Institute of Chicago API 
                                to find artwork that matches a keyword",
                "parameters": {

"type": "object", "properties": { "artwork keyword": { "type": "string", "description": "The keyword to be passed to the get_artwork function."}}}, "result": {"type": "string"} }} ] )
AI-systemen ontwikkelen met de OpenAI API

Alles samenbrengen

import json

if response.choices[0].finish_reason=='tool_calls': function_call = response.choices[0].message.tool_calls[0].function
if function_call.name == "get_artwork": artwork_keyword = json.loads(function_call.arguments)["artwork keyword"] artwork = get_artwork(artwork_keyword)
if artwork: print(f"Here are some recommendations: {[i['title'] for i in json.loads(artwork)['data']]}") else: print("Apologies, I couldn't make any recommendations based on the request.")
else: print("Apologies, I couldn't find any artwork.")
else: print("I am sorry, but I could not understand your request.")
AI-systemen ontwikkelen met de OpenAI API

Eindantwoord

Here are some recommendations: ['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']

Een impressionistisch schilderij van de kust met een boot

1 Seaside, Port of Honfleur | The Art Institute of Chicago
AI-systemen ontwikkelen met de OpenAI API

Laten we oefenen!

AI-systemen ontwikkelen met de OpenAI API

Preparing Video For Download...