Harici API'leri çağırma

OpenAI API ile AI Sistemleri Geliştirme

Francesca Donadoni

Curriculum Manager, DataCamp

API'ler için Python requests kütüphanesi

Art Institute of Chicago API’sine yapılan bir isteği gösteren diyagram

OpenAI API ile AI Sistemleri Geliştirme

API'ler için Python requests kütüphanesi

  • Kütüphaneyi içe aktarın
    import requests
    
  • Bir URL verin
    url = "https://api.artic.edu/api/v1/artworks/search"
    
  • Sorgu parametrelerini verin
    querystring = {"q":keyword}
    
  • Yanıtı alın
    response = requests.request("GET", url, params=querystring)
    
1 https://api.artic.edu/docs/#quick-start
OpenAI API ile AI Sistemleri Geliştirme

İşlevi paketleme

 

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
OpenAI API ile AI Sistemleri Geliştirme

Bağlam ekleme

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."} ],
OpenAI API ile AI Sistemleri Geliştirme

İşlevi araçlara ekleme

    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"} }} ] )
OpenAI API ile AI Sistemleri Geliştirme

Hepsini birleştirme

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.")
OpenAI API ile AI Sistemleri Geliştirme

Nihai yanıt

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']

Deniz kıyısında bir tekneyi gösteren empresyonist bir tablo

1 Seaside, Port of Honfleur | The Art Institute of Chicago
OpenAI API ile AI Sistemleri Geliştirme

Hadi pratik yapalım!

OpenAI API ile AI Sistemleri Geliştirme

Preparing Video For Download...