Ana içeriğe atla

Python ile OpenAI API üzerinden GPT-3.5 ve GPT-4 kullanma

Bu öğreticide, ChatGPT ile programatik olarak sohbet etmek için OpenAI Python paketini nasıl kullanacağınızı öğreneceksiniz.
Güncel 3 Eki 2026  · 14 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

ChatGPT, metin üretimi için son teknoloji bir büyük dil modelidir. Eğitim gibi bu türden öğreticilerden otomatik üretilmiş ürün açıklamalarına, Bing'in arama motoru sonuçlarına ve Veri Bilimi için ChatGPT el kitabında anlatılan onlarca veri kullanım senaryosuna kadar neredeyse her türlü metni yazma biçimimizi şimdiden değiştiriyor.

Etkileşimli kullanım için, ChatGPT'nin web arayüzü idealdir. Ancak, ChatGPT'nin arkasındaki şirket olan OpenAI, ChatGPT ve diğer modelleriyle kod kullanarak etkileşim kurmanıza olanak tanıyan bir uygulama programlama arayüzüne (API) de sahiptir.

Bu öğreticide, ChatGPT ile programatik olarak sohbet etmek için openai Python paketini nasıl kullanacağınızı öğreneceksiniz.

OpenAI'nin GPT API'sini kullanmanın ücretli olduğunu unutmayın. (Yeni kullanıcılara bazen ücretsiz krediler sağlanır, ancak kimin kredi aldığı ve bu teklifin ne kadar süreceği şeffaf değildir.) Maliyeti 1000 token başına 0,002 $'dır; 1000 token yaklaşık 750 kelimeye denk gelir. Bu öğreticideki tüm örnekleri bir kez çalıştırmanın maliyeti 2 ABD cent'inden az olmalıdır (ancak görevleri tekrar çalıştırırsanız, her seferinde ücretlendirilirsiniz).

Web Arayüzü Yerine Ne Zaman API Kullanmalısınız?

ChatGPT web uygulaması, GPT modelleri için harika bir arayüzdür. Ancak, bir veri hattına veya yazılıma yapay zekâ eklemek istiyorsanız API daha uygundur. Veri profesyonelleri için bazı olası kullanım örnekleri şunlardır:

  • Bir veritabanından veya başka bir API'den veri çekip, ardından GPT'den bunları özetlemesini veya bir rapor oluşturmasını istemek
  • Sonuçların otomatik olarak metin özeti sağlanması için bir gösterge panosuna GPT işlevselliği yerleştirmek
  • Veri ambarınıza doğal dil arayüzü sağlamak
  • scholarly (PyPI, Conda) paketiyle dergi makalelerini çekerek araştırma yapmak ve sonuçları GPT'ye özetletmek

Bir OpenAI Geliştirici Hesabı Oluşturun

API'yi kullanmak için OpenAI ile bir geliştirici hesabı oluşturmanız gerekir. E-posta adresiniz, telefon numaranız ve banka/kredi kartı bilgileriniz hazır olmalıdır.

Şu adımları izleyin:

  1. API kayıt sayfasına gidin.
  2. Hesabınızı oluşturun (e-posta adresinizi ve telefon numaranızı girmeniz gerekecek).
  3. API anahtarları sayfasına gidin.
  4. Yeni bir gizli anahtar oluşturun.
  5. Bu anahtarın bir kopyasını alın. (Kaybederseniz, anahtarı silip yenisini oluşturun.)
  6. Ödeme Yöntemleri sayfasına gidin.
  7. 'Ödeme yöntemi ekle'ye tıklayın ve kart bilgilerinizi girin.

Hesap Kimlik Bilgilerinizi Güvenli Şekilde Saklayın

Gizli anahtar gizli tutulmalıdır! Aksi takdirde başkaları API'ye erişmek için bunu kullanabilir ve ücretini siz ödersiniz. Aşağıdaki adımlar, anahtarınızı DataLab'de, DataCamp'in yapay zekâ destekli veri defterinde güvenli şekilde nasıl saklayacağınızı açıklar. Farklı bir platform kullanıyorsanız lütfen o platformun belgelerine bakın. Ayrıca ChatGPT'den tavsiye de isteyebilirsiniz. İşte önerilen bir istem:

> Siz bir BT güvenliği uzmanısınız. Bir veri bilimciyle konuşuyorsunuz. API erişimi için kullanılan özel anahtarların güvenli biçimde saklanmasına yönelik en iyi uygulamaları açıklayın.

  1. DataLab çalışma kitabınızda "Environment"a tıklayın
  2. "Environment"ın yanındaki artı işaretine tıklayın
  3. "Name" alanına "OPENAI" yazın. "Value" alanına, gizli anahtarınızı yapıştırın
  4. Ortam değişkenleri kümesine bir ad verin (gerçekten herhangi bir şey olabilir)
  5. "Create"e tıklayın ve yeni entegrasyonu bağlayın

Python'ı Kurma

API üzerinden GPT kullanmak için os ve openai Python paketlerini içe aktarmanız gerekir.

Bir Jupyter Notebook çözümü (DataLab gibi) kullanıyorsanız, IPython.display içinden bazı işlevleri içe aktarmak da faydalıdır.

Bir örnek ayrıca hisse senedi fiyatlarını almak için yfinance paketini kullanır.

# Import the os package
import os

# Import the openai package
import openai

# From the IPython.display package, import display and Markdown
from IPython.display import display, Markdown

# Import yfinance as yf
import yfinance as yf

Diğer kurulum görevi ise, az önce oluşturduğunuz ortam değişkenini openai paketinin görebileceği bir yere koymaktır.

# Set openai.api_key to the OPENAI environment variable
openai.api_key = os.environ["OPENAI"]

API Üzerinden GPT'yi Çağırma İçin Kod Deseni

OpenAI API'sini çağırıp bir sohbet yanıtı almak için kod deseni şöyledir:

response = openai.ChatCompletion.create(
              model="MODEL_NAME",
              messages=[{"role": "system", "content": 'SPECIFY HOW THE AI ASSISTANT SHOULD BEHAVE'},
                        {"role": "user", "content": 'SPECIFY WANT YOU WANT THE AI ASSISTANT TO SAY'}
              ])

Burada açılması gereken birkaç nokta var.

GPT için OpenAI API model adları

Model adları geliştirici belgelerindeki Model Genel Bakışı sayfasında listelenir. Bu öğreticide, ChatGPT tarafından kullanılan ve herkese açık API erişimi olan en güncel model gpt-3.5-turbo'yu kullanacaksınız. (Geniş ölçekte kullanıma sunulduğunda gpt-4'e geçmek isteyeceksiniz.)

OpenAI API GPT mesaj türleri

Sohbete Giriş belgelerinde üç tür mesaj tanımlanmıştır:

  • system mesajları, yapay zekâ asistanının davranışını açıklar. Veri bilimi kullanım senaryoları için yararlı bir sistem mesajı "Veri bilimi anlayan yardımcı bir asistansınız." olabilir.
  • user mesajları, yapay zekâ asistanının ne söylemesini istediğinizi açıklar. Bu öğretici boyunca kullanıcı mesajlarına örnekler göreceğiz
  • assistant mesajları, konuşmadaki önceki yanıtları açıklar. Etkileşimli bir sohbetin nasıl yapılacağını sonraki görevlerde ele alacağız

İlk mesaj bir sistem mesajı olmalıdır. Ek mesajlar kullanıcı ile asistan arasında dönüşümlü olmalıdır.

İlk Sohbetiniz: Bir Veri Kümesi Oluşturma

Örnek veri kümeleri oluşturmak, kodunuzu farklı veri senaryolarına karşı test etmek veya başkalarına kod göstermek için yararlıdır. GPT'den faydalı bir yanıt almak için veri kümenizin ayrıntılarını net ve kesin şekilde belirtmeniz gerekir; bunlar şunları içerir:

  • satır ve sütun sayısı
  • sütun adları
  • her sütunun ne içerdiğine dair açıklama
  • veri kümesinin çıktı biçimi

İşte bir veri kümesi oluşturmak için örnek bir kullanıcı mesajı.

Create a small dataset about total sales over the last year. 
The format of the dataset should be a data frame with 12 rows and 2 columns. 
The columns should be called "month" and "total_sales_usd". 
The "month" column should contain the shortened forms of month names 
from "Jan" to "Dec". The "total_sales_usd" column should 
contain random numeric values taken from a normal distribution 
with mean 100000 and standard deviation 5000. Provide Python code to 
generate the dataset, then provide the output in the format of a markdown table.

Bu mesajı önceki kod desenine ekleyelim.

# Define the system message
system_msg = 'You are a helpful assistant who understands data science.'

# Define the user message
user_msg = 'Create a small dataset about total sales over the last year. The format of the dataset should be a data frame with 12 rows and 2 columns. The columns should be called "month" and "total_sales_usd". The "month" column should contain the shortened forms of month names from "Jan" to "Dec". The "total_sales_usd" column should contain random numeric values taken from a normal distribution with mean 100000 and standard deviation 5000. Provide Python code to generate the dataset, then provide the output in the format of a markdown table.'

# Create a dataset using GPT
response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
                                        messages=[{"role": "system", "content": system_msg},
                                         {"role": "user", "content": user_msg}])

GPT'den Gelen Yanıtın Uygun Olduğunu Kontrol Edin

API çağrıları "risklidir" çünkü not defterinizin dışında sorunlar yaşanabilir; örneğin internet bağlantısı sorunları, size veri gönderen sunucuda bir problem ya da API kredinizin bitmesi. Aldığınız yanıtın uygun olduğunu kontrol etmelisiniz.

GPT modelleri, Sohbet belgelerinin Yanıt biçimi bölümünde açıklanan dört değerden biri olan bir durum kodu döndürür.

  • stop: API, model çıktısını tamamen döndürdü
  • length: max_tokens parametresi veya token sınırı nedeniyle model çıktısı eksik
  • content_filter: içerik filtrelerimizden gelen bir işaret nedeniyle içerik çıkarıldı
  • null: API yanıtı hâlâ devam ediyor veya eksik

GPT API, verileri Python'a JSON biçiminde gönderir; dolayısıyla response değişkeni iç içe geçmiş listeler ve sözlükler içerir. Bununla çalışmak biraz zahmetlidir!

response adlı bir yanıt değişkeni için durum kodu aşağıdaki yerde saklanır.

response["choices"][0]["finish_reason"]

Yapay zekâ asistanının mesajını çıkarma

İstediğimiz GPT metni response değişkeninin içinde gömülüdür. Neyse ki her zaman aynı yerdedir.

response["choices"][0]["message"]["content"]

Yanıt içeriği print(content) ile her zamanki gibi yazdırılabilir, ancak bu içerik Markdown'dır ve Jupyter not defterleri bunu display(Markdown(content)) ile işleyebilir

Here's the Python code to generate the dataset:

import numpy as np
import pandas as pd
# Set random seed for reproducibility
np.random.seed(42)
# Generate random sales data
sales_data = np.random.normal(loc=100000, scale=5000, size=12)
# Create month abbreviation list
month_abbr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
# Create dataframe
sales_df = pd.DataFrame({'month': month_abbr, 'total_sales_usd': sales_data})
# Print dataframe
print(sales_df)

And here's the output in markdown format:

| month | total_sales_usd |

|-------|----------------|

| Jan | 98728.961189 |

| Feb | 106931.030292 |

| Mar | 101599.514152 |

| Apr | 97644.534384 |

| May | 103013.191014 |

| Jun | 102781.514665 |

| Jul | 100157.741173 |

| Aug | 104849.281004 |

| Sep | 100007.081991 |

| Oct | 94080.272682 |

| Nov | 96240.993328 |

| Dec | 104719.371461 |

GPT'yi Çağırmak İçin Yardımcı Bir İşlev Kullanın

Bu üç basit şeyi yapmak için çok tekrarlı şablon kodu yazmanız gerekir. Sıkıcı kısımları soyutlayan bir sarmalayıcı işlev faydalıdır. Böylece veri bilimi kullanım senaryolarına odaklanabiliriz.

Umarız OpenAI, bu tür şeylerin yerleşik olduğu şekilde Python paketinin arayüzünü geliştirir. Bu arada, bunu kendi kodunuzda kullanmaktan çekinmeyin.

İşlev iki argüman alır.

  • system: Sistem mesajını içeren bir dize.
  • user_assistant: Kullanıcı mesajı ve ardından asistan mesajı dönüşümlü gelecek şekilde dizelerden oluşan bir dizi.

Dönüş değeri, üretilen içeriktir.

def chat(system, user_assistant):
  assert isinstance(system, str), "`system` should be a string"
  assert isinstance(user_assistant, list), "`user_assistant` should be a list"
  system_msg = [{"role": "system", "content": system}]
  user_assistant_msgs = [
      {"role": "assistant", "content": user_assistant[i]} if i % 2 else {"role": "user", "content": user_assistant[i]}
      for i in range(len(user_assistant))]

  msgs = system_msg + user_assistant_msgs
  response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
                                          messages=msgs)
  status_code = response["choices"][0]["finish_reason"]
  assert status_code == "stop", f"The status code was {status_code}."
  return response["choices"][0]["message"]["content"]

Bu işlevin örnek kullanımı şöyledir

response_fn_test = chat("You are a machine learning expert.",["Explain what a neural network is."])

display(Markdown(response_fn_test))
A neural network is a type of machine learning model that is inspired by the architecture of the human brain. It consists of layers of interconnected processing units, called neurons, that work together to process and analyze data.

Each neuron receives input from other neurons or from external sources, processes that input using a mathematical function, and then produces an output that is passed on to other neurons in the network.

The structure and behavior of a neural network can be adjusted by changing the weights and biases of the connections between neurons. During the training process, the network learns to recognize patterns and make predictions based on the input it receives.

Neural networks are often used for tasks such as image classification, speech recognition, and natural language processing, and have been shown to be highly effective at solving complex problems that are difficult to solve with traditional rule-based programming methods.

Yapay Zekâ Asistanının Yanıtlarını Yeniden Kullanma

Birçok durumda, yapay zekâ ile daha uzun bir sohbet kurmak isteyeceksiniz. Yani GPT'ye bir istem gönderir, bir yanıt alır ve sohbeti sürdürmek için başka bir istem gönderirsiniz. Bu durumda, GPT'nin tüm bağlama sahip olması için önceki GPT yanıtını ikinci API çağrısına dahil etmeniz gerekir. Bu, yanıtın doğruluğunu artırır ve sohbet boyunca tutarlılığı güçlendirir.

GPT'nin mesajını yeniden kullanmak için, mesajı yanıttan alıp yeni bir sohbet çağrısına aktarırsınız.

Örnek: Örnek veri kümesini analiz etme

Daha önce oluşturulan veri kümesindeki satış sütununun ortalamasını hesaplamayı deneyelim. İlk seferde chat() işlevini kullanmadığımız için, önceki yanıt metnine ulaşmak adına daha uzun alt kümeye ayırma kodunu kullanmamız gerekiyor. chat() kullanırsanız kod daha basittir.

# Assign the content from the response in Task 1 to assistant_msg
assistant_msg = response["choices"][0]["message"]["content"]

# Define a new user message
user_msg2 = 'Using the dataset you just created, write code to calculate the mean of the `total_sales_usd` column. Also include the result of the calculation.'

# Create an array of user and assistant messages
user_assistant_msgs = [user_msg, assistant_msg, user_msg2]

# Get GPT to perform the request
response_calc = chat(system_msg, user_assistant_msgs)

# Display the generated content
display(Markdown(response_calc))
Sure! Here's the code to calculate the mean of the `total_sales_usd` column: 

```python 
mean_sales = sales_df['total_sales_usd'].mean() 
print("Mean sales: $", round(mean_sales, 2)) 
``` 

And here's the output of this code: 

``` 
Mean sales: $ 100077.57 
``` 

Therefore, the mean of total sales over the last year is about $100,077.57. 

Bir Veri Hattında GPT Kullanma

Web arayüzüne kıyasla API kullanmanın büyük bir avantajı, GPT'yi diğer API'lerle birleştirebilmenizdir. Bir veya daha fazla kaynaktan veri çekip ardından buna yapay zekâ uygulamak güçlü bir iş akışıdır.

Hava durumu verilerine GPT uygulama

Burada, weather2 paketiyle (PyPI) bir hava tahmini alacak ve etkinlik fikirleri üretmek için GPT'yi kullanacağız.

# Import the weather2 package
import weather

# Get the forecast for Miami
location = "Miami"
forecast = weather.forecast(location)

# Pull out forecast data for midday tomorrow
fcast = forecast.tomorrow["12:00"]

# Create a prompt
user_msg_weather = f"In {location} at midday tomorrow, the temperature is forecast to be {fcast.temp}, the wind speed is forecast to be {fcast.wind.speed} m/s, and the amount of precipitation is forecast to be {fcast.precip}. Make a list of suitable leisure activities."

# Call GPT
response_activities = chat("You are a travel guide.", [user_msg_weather])

display(Markdown(response_activities))
With mild temperatures and calm winds, Miami is the perfect place for leisure activities. Here are some suggestions:

1. Visit Miami's beaches and soak up some sun or take a dip in the ocean!

2. Explore Miami's art scene with a visit to the Perez Art Museum Miami or the Wynwood Walls.

3. Take a stroll along the famous Ocean Drive and enjoy the colorful Art Deco architecture.

4. Head to Little Havana to experience the Cuban culture and delicious cuisine.

5. Enjoy a scenic walk or bike ride through one of Miami's many parks, such as Bayfront Park or South Pointe Park.

6. Visit the Miami Seaquarium and see some incredible marine life up close.

7. Take a boat tour to see the stunning Miami skyline from the water.

8. Shopping enthusiasts can explore the many high-end boutiques and outdoor shopping malls, such as Lincoln Road Mall.

9. Foodies can venture to one of the many food festivals happening throughout the year.

10. Finally, there are plenty of nightclubs and live music venues to keep the night going.

Harika! Yarın Miami'de olmayı dilediğim bir yanım var!

Bir Sonraki Seviyeye Taşıyın

GPT kullanımı hakkında daha fazla bilgiyi ChatGPT'ye Giriş kursunda edinebilirsiniz. (OpenAI API ile çalışma üzerine tam bir kurs çok yakında geliyor!)

Az önce öğrendikleriniz için bir başvuru kaynağı olarak, Python'da OpenAI API El Çizelgesi'nin bir kopyasını alın veya OpenAI API ve ChatGPT'ye Başlangıç canlı eğitim kaydını izleyin.

Metinden konuşmaya döküm ile ilgileniyorsanız, OpenAI Whisper API ile Konuşmayı Metne Dönüştürme öğreticisini okuyun.

Konular
Yapay Zeka
Python

En İyi Python Kursları

Kurs

Python’a Giriş

4 sa
7.1M
Python ile veri analizi temellerini sadece dört saatte öğrenin. Bu çevrimiçi kurs, Python arayüzünü tanıtacak ve popüler paketleri keşfedecektir.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör