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ğeriapplication/json
'dır. -
Authorization
: Bu, API isteğini doğrulamak için kullanılan kimliğidir ve formatı her zamanBearer (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ğlayanrole
ve mesajın içeriğini temsil edencontent
'e sahip olduğu mesajların bulunduğu dizidir. -
temperature
: Yanıtın kesinliğini kontrol eder. Daha düşük birtemperature
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)