1. API İstekleri Oluşturma

1.1 CURL Kullanarak İstek Gönderme

CURL, HTTP ve HTTPS gibi çeşitli protokoller kullanarak veri gönderip almayı destekleyen bir komut satırı aracıdır. CURL kullanarak OpenAI API'sine bir istek göndermek için öncelikle geçerli bir API anahtarına sahip olmalısınız ve ardından bunu istek başlığına eklemelisiniz.

İşte OpenAI API'ine bir istek göndermek için kullanılan CURL komutunun bir örneği:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "Bunu bir test olarak söyle!"}],
     "temperature": 0.7
   }'

$OPENAI_API_KEY kısmını API anahtarınızla değiştirmelisiniz. Güvenlik nedenleriyle API anahtarınızı herhangi bir genel ortamda açığa çıkarmaktan kaçının.

1.2 İstek Başlıklarını Analiz Etme

Yukarıdaki CURL komutunda, iki önemli istek başlığı kullandık: Content-Type ve Authorization.

  • Content-Type: Bu, sunucuya veriyi JSON formatında gönderdiğimizi bildirir. Genellikle değeri application/json'dır.
  • Authorization: Bu, API isteğini doğrulamak için kullanılan kimliğidir ve formatı her zaman Bearer (sizin API anahtarınız) şeklindedir.

Bu iki başlığın doğruluğunun sağlanması, isteğin başarısı için önemlidir.

1.3 İstek Gövdesini Oluşturma

İstek gövdesi, OpenAI'e niyetlerimiz hakkında bilgi veren JSON biçiminde bir dizedir. Bu istekte, kullandığımız modeli belirtmek için model'i kullanır, kullanıcının girdisini tanımlayan bir messages dizisini ileterek ve yanıtın değişkenliğini ayarlamak için bir temperature belirleriz.

JSON şu şekildedir:

{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Bunu bir test olarak söyle!"}],
  "temperature": 0.7
}

Bu örnekte, modele girdi mesajına dayalı olarak bir test yanıtı oluşturulmasını istiyoruz.

1.4 İstek Parametrelerinin Detaylı Açıklaması

İstek gövdesi içinde dikkate alınması gereken birkaç önemli parametre bulunmaktadır:

  • model: Kullanmayı amaçladığımız yapay zeka modelini belirtir. OpenAI, farklı işlevselliklere ve etkilere sahip birden fazla model sağlar.
  • messages: Bu, bir veya daha fazla mesaj nesnesini içeren bir dizi olup, her mesajın mesajın rolünü sağlayan role ve mesajın içeriğini temsil eden content'e sahip olduğu mesajların bulunduğu dizidir.
  • temperature: Yanıtın kesinliğini kontrol eder. Daha düşük bir temperature daha kesin cevaplar üretirken, daha yüksek bir değer daha fazla rastlantısallık sağlar.

2. API Yanıtlarını Analiz Etme

2.1 Yanıtı Anlama

Bir istek gönderdiğinizde, sunucu bir HTTP durum kodu ve muhtemelen bir yanıt gövdesi döndürecektir. Genellikle başarılı bir istek, 200 serisinde bir durum kodu alacaktır. Dönen JSON verisi, isteğin sonucunu içerir ve bir örnek yanıt aşağıdaki gibidir:

{
    "id": "chatcmpl-abc123",
    "object": "chat.completion",
    "created": 1677858242,
    "model": "gpt-3.5-turbo-1106",
    "usage": {
        "prompt_tokens": 13,
        "completion_tokens": 7,
        "total_tokens": 20
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "\n\nBunu bir test olarak söyle!"
            },
            "logprobs": null,
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

Bu yanıtta, tamamlama ID'sini, oluşturma zaman damgasını, kullanılan modeli, token kullanımını ve yanıtın gerçek içeriğini ( choices alanında) görebiliriz.

2.2 Tamamlanma ve Hata İşleme

finish_reason alanı, API'nin daha fazla içerik üretmeyi neden durdurduğunu gösterir. Yaygın bitiş nedenleri arasında stop, length ve idle bulunur. Bir hata meydana gelirse, örneğin token limitlerini aşmak veya yanlış API anahtarı kullanmak gibi, ilgili hata mesajını ve durum kodunu alırsınız. Kullanıcı deneyiminin sürekliliğini ve uygulamanızın stabilitesini sağlamak için bu hataları uygun bir şekilde işlemek önemlidir. Hata işleme için, dönen durum koduna ve hata mesajına göre uygun bir hata işleme stratejisi belirleyebilirsiniz, örneğin isteği yeniden denemek veya kullanıcıya hata nedenini açıklayan geribildirim sağlamak.

2.3 Python SDK Kullanarak API İstekleri Gönderme

Aşağıda, resmi OpenAI Python SDK'sını kullanarak API çağrısı yapmanın bir örneği bulunmaktadır.

İlk olarak, pip kullanarak openai kütüphanesini yüklemeniz gerekmektedir:

pip install --upgrade openai

Daha sonra, aşağıdaki Python kodunu kullanarak yukarıdaki örnekle benzer bir API isteği yapabilirsiniz. API anahtarınızı belirttiğinizden emin olun.

from openai import OpenAI

client = OpenAI(
   api_key="YOUR_OPENAI_API_KEY",
)

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "Çeşitli programlama problemlerini çözmede usta bir profesyonel geliştirme asistanısınız."},
    {"role": "user", "content": "Go'da quicksort için bir fonksiyon yaz."}
  ]
)

print(completion.choices[0].message)