0Pricing
Learn AI with Python · Ders

OpenAI API: chat.completions ve Akış

OpenAI istemcisi, messages listesi, system/user/assistant rolleri, stream=True ile akış.

OpenAI API: chat.completions ve Akış, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

OpenAI Python SDK ile Tanışın

openai Python paketi, GPT-4o gibi OpenAI modelleriyle iletişim kurmanın resmi yoludur. Paketi pip install openai ile kurduğunuzda, kimlik doğrulama, yeniden denemeler ve istek oluşturma işlemlerini sizin için yöneten tek bir OpenAI istemci sınıfına sahip olursunuz.

Yaptığınız her çağrı bu istemci üzerinden gerçekleşir; bu nedenle istemciyi bir kez oluşturup yeniden kullanmak standart yaklaşımdır.

pip install openai

from openai import OpenAI

İstemciyi Oluşturma

İstemciyi OpenAI() ile örnekleyin. Varsayılan olarak anahtarınızı OPENAI_API_KEY ortam değişkeninden okur; bu da gizli bilgileri kaynak kodunuzun dışında tutar.

Anahtarı doğrudan da geçirebilirsiniz; ancak üretim uygulamaları için ortam değişkenleri önerilen yaklaşımdır.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

# Or pass it explicitly (not recommended)
client = OpenAI(api_key="sk-...")

Mesaj Listesi

Sohbet modelleri bir mesaj listesi tarafından yönlendirilir. Her mesaj, role ve content içeren bir sözlüktür. Üç temel rol system (yönergeler), user (insan) ve assistant (model) rolleridir.

Bu liste, modelin her çağrıda gördüğü tam konuşma bağlamıdır.

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

İlk Tamamlama

Bir model ve messages değerinizle client.chat.completions.create() çağrısı yapın. Yanıt metni response.choices[0].message.content konumunda bulunur.

API bir seçenekler listesi döndürür; ancak normal kullanımda ilk seçeneği okursunuz.

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

print(response.choices[0].message.content)

Parametrelerle Çıktıyı Denetleme

Yanıtı iki parametre şekillendirir: temperature (0 = öngörülebilir, daha yüksek değerler = daha yaratıcı) ve max_tokens (yanıt uzunluğunu sınırlar). Düşük sıcaklıklar bilgiye dayalı görevler için, yüksek sıcaklıklar ise beyin fırtınası için uygundur.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    temperature=0.2,
    max_tokens=300
)

Yanıtlar Neden Akışla İletilir?

Akış olmadan herhangi bir şey görmeden önce yanıtın tamamını beklemeniz gerekir. Akışla iletim sayesinde belirteçler üretildikçe gelir; böylece kullanıcı arayüzü ChatGPT'de olduğu gibi metni gerçek zamanlı gösterebilir.

Bunu stream=True ile etkinleştirirsiniz; bu da dönüş değerini tek bir nesneden yineleyiciye dönüştürür.

Akışı Etkinleştirme

create() işlevine stream=True aktarın. Artık tamamlanmış bir yanıt yerine model bunları ürettikçe parçalar veren bir üretici elde edersiniz.

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    stream=True
)

Parçalar Üzerinde Yineleme

stream üzerinde döngü kurun. Her chunk, chunk.choices[0].delta.content içinde metnin kısmi bir bölümünü taşır. İlk ve son parçalar burada None içerebilir; bu nedenle yazdırmadan önce bunu kontrol edin.

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta is not None:
        print(delta, end="", flush=True)

Değişim ile Mesaj Arasındaki Farkı Anlamak

Normal bir yanıtta message.content değerini (yanıtın tamamını) okursunuz. Akışta ise delta.content değerini (yalnızca yeni bölümü) okursunuz. delta sözcüğü, son parçadan bu yana gerçekleşen “değişim” anlamına gelir.

Tüm değişimleri birleştirmek, tam mesajı yeniden oluşturur.

full_text = ""
for chunk in stream:
    piece = chunk.choices[0].delta.content or ""
    full_text += piece
print("\nFinal:", full_text)

Çok Turlu Görüşmeler

Bir görüşmeyi sürdürmek için asistanın yanıtını messages içine append edin ve ardından sonraki kullanıcı mesajını ekleyin. Model durum bilgisi tutmaz; geçmişi YOU yönetirsiniz.

messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "And its population?"})

follow_up = client.chat.completions.create(model="gpt-4o", messages=messages)

Belirteç Kullanımını İnceleme

Akışla iletilmeyen yanıtlar prompt_tokens, completion_tokens ve total_tokens içeren bir usage nesnesi barındırır. Faturalandırma belirteç başına yapıldığından API maliyetini bu şekilde izleyebilir ve bütçelendirebilirsiniz.

print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Hızlı Kontrol

Akışla iletim konusundaki anlayışınızı sınayın.

Özet: Sohbet Tamamlamaları ve Akışla İletim

Bir OpenAI istemcisi oluşturmayı, sistem/kullanıcı/asistan rolleriyle bir messages listesi oluşturmayı ve chat.completions.create() çağrısı yapmayı öğrendiniz. Normal yanıtları choices[0].message.content değerinden okursunuz.

stream=True ile parçalar üzerinde yineleme yapıp gerçek zamanlı çıktı için delta.content değerini okur, yanıtları append ederek geçmişi korur ve maliyeti usage nesnesi aracılığıyla izlersiniz.

Sıkça Sorulan Sorular

“OpenAI API: chat.completions ve Akış” dersi ücretsiz mi?

Evet — “OpenAI API: chat.completions ve Akış” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“OpenAI API: chat.completions ve Akış” dersinde ne öğreneceğim?

OpenAI istemcisi, messages listesi, system/user/assistant rolleri, stream=True ile akış. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“OpenAI API: chat.completions ve Akış” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. OpenAI API: chat.completions ve Akış
  2. Python'da Anthropic Claude API'si
  3. LLM'lerle İşlev Çağırma ve Araç Kullanımı
  4. Üretim LLM Uygulamaları için İstem Mühendisliği
← Learn AI with Python Sayfasına Dön