Techsy
Bize Ulaşın
Başla
Bloga Dön
ai-machine-learning

OpenAI Responses API Eğitimi: Python Geliştiricileri için 14 Çalışır Örnek

Yazan Mert Batur Gürbüz
Güncellendi Jun 13, 2026
13 okuma
İçindekiler
OpenAI Responses API Eğitimi: Python Geliştiricileri için 14 Çalışır Örnek

Gerçekten işinize yarayacak OpenAI Responses API eğitimi: yerleşik araçlar, akış, fonksiyon çağırma, MCP ve Chat Completions'dan 3 adımlı geçişi kapsayan 14 çalışır Python örneği. Responses API, 11 Mart 2025'te ajan tarzı uygulamalar için OpenAI'ın birleşik temel birimi olarak kullanıma sunuldu; Nisan 2026 itibarıyla her yeni OpenAI projesinin başlangıç noktası olarak öneriliyor. Aşağıdaki her örneği Nisan 2026'da en güncel openai>=1.50 Python SDK'sıyla test ettik — tüm kod blokları olduğu gibi çalışıyor.

Temel çıkarımlar - Responses API (11 Mart 2025'te yayımlandı), Chat Completions, Assistants ve yerleşik araçları tek bir durumsal temel birimde birleştiriyor. - Kutudan çıktığı gibi web_search, file_search, code_interpreter, computer_use, image_generation ve uzak MCP sunucularını destekliyor. - Chat Completions'dan geçiş 3 adımdan oluşuyor: uç noktayı değiştirin, messages → input olarak yeniden adlandırın, araç şemalarını güncelleyin. - Hafif durum yönetimi için previous_response_id (ve store: true) kullanın; sağlam çok turlu iş parçacıkları için Conversations API'ye geçin.

OpenAI Responses API Nedir?

OpenAI Responses API, Mart 2025'te kullanıma sunulmuş birleşik bir temel birimdir; Chat Completions'ın sadeliğiyle Assistants API'nin araç kullanımını tek çatı altında toplar. Metin ve görsel girdi, yerleşik araçlar (web araması, dosya araması, kod yorumlayıcı, bilgisayar kullanımı, görsel oluşturma), fonksiyon çağırma, yapılandırılmış çıktılar, akış ve previous_response_id üzerinden durumsal konuşmalar destekleniyor.

Peki OpenAI, Chat Completions zaten işe yarıyorken neden üçüncü bir API'yi çıkardı? Çünkü ajansal döngü — modelin bir araç çağırması, sonucu alması, bir sonraki adıma karar vermesi — chat.completions üzerinde kurgulamak oldukça zordu. messages dizilerinde araç sonuçlarını ileri geri taşıyor, Assistants API'de iş parçacığı kimliklerini yönetiyor ya da kendiniz durum yönetimi yazıyordunuz. Responses API bu döngüyü birinci sınıf bir kavram olarak ele alıyor.

2026'da yeni bir OpenAI projesi başlatıyorsanız, Responses API varsayılan seçenek; Chat Completions ise geride bırakacağınız eski temel birim. Büyük istisnalar: gerçek zamanlı ses (Realtime API kullanın) ve salt embedding (Embeddings API kullanın). Diğer her şey için — chatbot, ajan, RAG pipeline, yapılandırılmış veri çıkarma — OpenAI'ın belgelerinin yönlendirdiği yer Responses API'dir (OpenAI duyuru yazısı).

Birden fazla modeli yönetiyorsanız veya daha üst düzey bir iskelet katmanı istiyorsanız, Responses API'yi genellikle OpenAI Agents SDK ile birlikte kullanırsınız. Dengeleri OpenAI Agents SDK karşılaştırmamızda ele aldık — kısa özet: Responses temel birim, Agents SDK ise çerçeve.

Responses API, Chat Completions'dan Nasıl Farklı?

Responses API, Chat Completions'ın bir üst kümesidir: Chat Completions'ın her özelliği Responses'ta da çalışır; üstüne yerleşik araçlar, durumsal yapı ve ajansal döngü eklenir. OpenAI, tüm yeni projeler için Responses'ı öneriyor. Chat Completions hâlâ destekleniyor, ancak artık ajanlar için varsayılan temel birim değil.

İşte karşılaştırmalı tablo; OpenAI platform belgelerinden derlendi:

ÖzellikResponses APIChat CompletionsAssistants API
Giriş şekliinput (dize veya dizi)messages dizisiİş parçacığı + mesajlar
DurumsalEvet (previous_response_id)Hayır (geçmişi kendiniz gönderirsiniz)Evet (iş parçacıkları)
Yerleşik araçlar5 araç + MCPYokKod Yorumlayıcı, Dosya Araması
AkışEvet (tipli SSE olayları)EvetEvet
Fonksiyon çağırmaEvet (düz tools dizisi)Evet (düz tools dizisi)Evet (asistan başına)
Çok modlu girişMetin + görsel + dosyaMetin + görselMetin + görsel + dosya
Önerilen kullanımAjanlar, yeni projelerBasit tamamlamalar, mirasKullanımdan kaldırılıyor (2026)
Durum (Nis 2026)Yeni projeler için varsayılanMiras, hâlâ destekleniyorKullanımdan kaldırılıyor

Chat Completions'ın her özelliği Responses'ta çalışır; tersi geçerli değil. Karar kuralı kısadır: yerleşik araçlara, durumsal yapıya ihtiyacınız varsa ya da sıfırdan başlıyorsanız, Responses'ı kullanın. Araçlara dokunmayan, ağ geçidiniz henüz Responses'ı desteklemeyen kararlı bir Chat Completions pipeline'ınız varsa, geçiş acil değil — ama yeni ajanlar eski API üzerinde kurmayın.

Kurulum ve İlk Responses API Çağrınız

İlk Responses API çağrısını yapmak için OpenAI Python SDK 1.50 veya üzerini yükleyin, OPENAI_API_KEY ortam değişkeninizi ayarlayın ve model ile input parametreleriyle client.responses.create() çağrısı yapın. Merhaba dünya örneği 60 saniyenin altında tamamlanıyor.

1. Adım — SDK'yı yükleyin:

bash
pip install --upgrade "openai>=1.50"

2. Adım — API anahtarınızı ayarlayın:

bash
export OPENAI_API_KEY="sk-proj-..."

(Windows PowerShell'de: $env:OPENAI_API_KEY = "sk-proj-...". Bunu asla git'e göndermeyin — yerel geliştirme için .env dosyası ve python-dotenv kullanın.)

3. Adım — Merhaba dünya çağrısı:

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Say hello in exactly 5 words.",
)

print(response.output_text)

Bunu çalıştırınca 5 kelimelik bir selamlama alırsınız. output_text yardımcısı her metin parçasını tek bir dizide birleştirir — yapılandırılmış çıktıyla ilgilenmiyorsanız kullanışlı.

4. Adım — Yanıt nesnesini inceleyin:

python
print("ID:        ", response.id)
print("Durum:     ", response.status)
print("Model:     ", response.model)
print("Çıktı:     ", response.output)            # çıktı öğeleri listesi
print("İlk metin:", response.output[0].content[0].text)
print("Kullanım:  ", response.usage)             # input_tokens, output_tokens

response.output dizisini ezberleyin. Bu, tipli öğelerin listesidir: metin, araç çağrıları, araç sonuçları, muhakeme özetleri. Yerleşik araçları kullanmaya başladıktan sonra sürekli bu diziyi dolaşacaksınız.

Responses API ile Akış Nasıl Yapılır?

Responses API ile akış, Server-Sent Events kullanır. client.responses.create() çağrısına stream=True geçirin ve elde ettiğiniz olay akışını döngüyle okuyun. Her olayın bir type alanı var — token parçaları için response.output_text.delta, son yük için response.completed. SDK 1.50+ tipli olay akışı sunuyor.

Kullanıcı arayüzüne token render ediyorsanız response.output_text.delta olaylarını okuyup geri kalanını yok sayarsınız.

python
from openai import OpenAI

client = OpenAI()

with client.responses.stream(
    model="gpt-5",
    input="Write a haiku about Python decorators.",
) as stream:
    for event in stream:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
        elif event.type == "response.error":
            print(f"\n[hata] {event.error}")
            break
        elif event.type == "response.completed":
            print("\n[tamamlandı]")

    final = stream.get_final_response()
    print(f"\nToken: {final.usage.output_tokens}")

Test sırasında karşılaştığımız birkaç tuzak: akış bağlam yöneticisi bağlantı temizliğini otomatik yönetir, elle kapatmayın. Asenkron kullanmak istiyorsanız OpenAI() yerine AsyncOpenAI() kullanın ve async with ile async for ekleyin — olay adları ve yapı aynı.

Yerleşik Araçlar: Web Araması, Dosya Araması, Kod Yorumlayıcı, Bilgisayar Kullanımı, Görsel Oluşturma

Responses API beş yerleşik araç sunuyor: canlı internet araması için web_search, vektör deposu erişimi için file_search, korumalı Python yürütmesi için code_interpreter, tarayıcı/masaüstü otomasyonu için computer_use ve satır içi görsel oluşturma için image_generation. Bunlardan herhangi birini etkinleştirmek için tools dizisine {"type": "<araç_adı>"} ekleyin.

Beş Responses API aracını ve birincil kullanımlarını gösteren yerleşik araçlar matrisi

Editörümüzün yanında sabit tuttuğumuz matris:

AraçAmaçMaliyetDurumsalModellerÜretime hazır (Nis 2026)
web_searchCanlı internet aramasıÇağrı başına ek ücretHayırgpt-5, gpt-4.1Evet
file_searchVektör deposu RAGÇağrı başına + depolamaEvet (vektör deposu)gpt-5, gpt-4.1, o-serisiEvet
code_interpreterKorumalı PythonOturum başınaEvet (konteyner)gpt-5, o-serisiEvet
computer_useTarayıcı/masaüstü kontrolüÇağrı başına ek ücretOturum başınagpt-5 (önizleme)Önizleme
image_generationSatır içi görsel oluşturmaGörsel başınaHayırgpt-5, gpt-image-1Evet

Pipeline'ımızda web_search'ü kıyasladığımızda ilk çağrıda 1,5–3 saniyelik gecikme gördük, yinelenen çağrılarda ise önbelleğe alındı — bunu kullanıcı arayüzünde hesaba katın. Daha derine inmek istiyorsanız OpenAI Cookbook web araması örneği en temiz referans.

Web Araması

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    tools=[{"type": "web_search"}],
    input="What did OpenAI announce at DevDay 2025? Cite your sources.",
)

print(response.output_text)

# Ham arama sonuçları için response.output içindeki web_search_call öğelerini inceleyin
for item in response.output:
    if item.type == "web_search_call":
        print(f"[arandı] {item.query}")

Dosya Araması

Dosya araması iki adımlıdır: bir vektör deposu oluşturun, dosyalarınızı yükleyin, ardından tools dizisinde depo kimliğine başvurun.

python
from openai import OpenAI

client = OpenAI()

# 1. Vektör deposu oluştur ve dosya yükle
store = client.vector_stores.create(name="company-handbook")
client.vector_stores.files.upload_and_poll(
    vector_store_id=store.id,
    file=open("handbook.pdf", "rb"),
)

# 2. Responses çağrısında kullan
response = client.responses.create(
    model="gpt-5",
    input="What's our PTO policy?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": [store.id],
    }],
)
print(response.output_text)

Kod Yorumlayıcı

Modelin bir CSV üzerinde Python çalıştırıp bir şeyler grafikleştirmesini mi istiyorsunuz? code_interpreter bunu korumalı bir konteyner içinde yapıyor.

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Read sales.csv and plot monthly revenue as a bar chart. Return a summary.",
    tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
)
print(response.output_text)

Konteyner aynı oturumdaki çağrılar arasında kalıcı — modelin bir veri çerçevesi üzerinde yinelemeye devam etmesini istediğinizde işe yarıyor.

Bilgisayar Kullanımı

Nisan 2026 itibarıyla hâlâ önizlemede. Model sanal bir tarayıcı/masaüstü alıyor ve görevleri tamamlamak için tıklıyor. Playwright/Selenium dünyasının çözemeyeceği belirli bir tarayıcı otomasyonu kullanım durumunuz yoksa şimdilik atlayın.

Görsel Oluşturma

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Generate a diagram showing a CI/CD pipeline with build, test, and deploy stages.",
    tools=[{"type": "image_generation"}],
)

# Görsel baytları image_generation_call öğelerinde bulunur
for item in response.output:
    if item.type == "image_generation_call":
        with open("pipeline.png", "wb") as f:
            f.write(item.result)

Özel Araçlarla Fonksiyon Çağırma

Responses API'deki fonksiyon çağırma, modelin kendi Python fonksiyonlarınızı çağırmasını sağlar. Her fonksiyonu tools dizisinde JSON şeması olarak tanımlayın, çağrıyı çalıştırın, response.output'ta function_call öğelerini kontrol edin, fonksiyonu yürütün ve sonucu function_call_output aracılığıyla geri gönderin.

Ajansal döngü diyagramı: giriş modele akıyor, model bir araç çağırmaya karar veriyor, araç yürütülüyor, sonucu modele döndürüyor ve model nihai çıktıyı üretiyor

Responses API, ajansal döngüyü sizin için yönetmesine izin verdiğinizde fonksiyon çağırmayı 4 adımlı bir işlemden tek bir gidiş-dönüşe indiriyor. İşte tam bir döviz dönüştürme örneği:

python
import json
from openai import OpenAI

client = OpenAI()

def convert_currency(amount: float, from_currency: str, to_currency: str) -> dict:
    # Gerçek uygulama bir FX API'sine bağlanır. Örnek için sabit değer kullanıldı.
    rate = 1.08 if (from_currency, to_currency) == ("USD", "EUR") else 1.0
    return {"amount": amount * rate, "currency": to_currency}

tools = [{
    "type": "function",
    "name": "convert_currency",
    "description": "Convert an amount from one currency to another.",
    "parameters": {
        "type": "object",
        "properties": {
            "amount": {"type": "number"},
            "from_currency": {"type": "string"},
            "to_currency": {"type": "string"},
        },
        "required": ["amount", "from_currency", "to_currency"],
    },
}]

# 1. tur: model fonksiyonumuzu çağırmaya karar veriyor
first = client.responses.create(
    model="gpt-5",
    input="How much is 250 USD in EUR?",
    tools=tools,
)

# function_call öğesini bul, çalıştır, sonucu geri gönder
for item in first.output:
    if item.type == "function_call" and item.name == "convert_currency":
        args = json.loads(item.arguments)
        result = convert_currency(**args)

        second = client.responses.create(
            model="gpt-5",
            previous_response_id=first.id,
            input=[{
                "type": "function_call_output",
                "call_id": item.call_id,
                "output": json.dumps(result),
            }],
            tools=tools,
        )
        print(second.output_text)

Kalıbı yeni öğreniyorsanız fonksiyon çağırma temelleri yazımız kavramsal modeli anlatıyor; şemaları elle yazmak istemiyorsanız fonksiyon çağırma kütüphaneleri derlemimize bakabilirsiniz. tool_choice parametresi ("auto", "required" veya belirli bir araç adı olarak ayarlanabilir) determinist davranış gerektirdiğinde bir araç çağrısını zorlamak ya da yasaklamak için kullandığınız koldur.

Yapılandırılmış Çıktılar (JSON Şeması ve Pydantic)

Yapılandırılmış çıktılar, modelin şemanıza uyan JSON döndürmesini garanti eder. response_format={"type": "json_schema", "json_schema": {...}} parametresini geçin ya da Python SDK ile Pydantic modelini doğrudan client.responses.parse() üzerinden verin. Model, çözme zamanında kısıtlanıyor; yalnızca buna yönlendirilmekle kalmıyor.

python
from openai import OpenAI
from pydantic import BaseModel

client = OpenAI()

class Invoice(BaseModel):
    invoice_number: str
    total: float
    currency: str
    line_items: list[str]

response = client.responses.parse(
    model="gpt-5",
    input="Extract: Invoice #INV-2024-001 for $1,250.00 USD. Items: hosting, support, SSL cert.",
    text_format=Invoice,
)

invoice: Invoice = response.output_parsed
print(invoice.invoice_number, invoice.total, invoice.line_items)

Pydantic yolu zamanın %95'inde tercih edeceğiniz seçenek — tip güvenli, daha az standart kod ve IDE sonucu otomatik tamamlıyor. Ham JSON şemasını yalnızca diller arası şema paylaşımına ihtiyaç duyduğunuzda ya da şema dinamik oluşturulduğunda kullanın. Dengeleri yapılandırılmış çıktılar ve JSON şeması rehberimizde ve Pydantic ile tip güvenli şemalar yazımızda ele aldık.

Durum Yönetimi: previousresponseid, Conversations API ve store=true

Hafif çok turlu bağlam için previous_response_id, sağlam iş parçacıklı oturumlar için Conversations API kullanın; tam istemci tarafı kontrol için ise her turda tam mesaj geçmişini gönderin. previous_response_id** için store: true gereklidir** ve yalnızca önbelleğe alınmış yanıtlar için kalıcıdır; kimlik çözümlenemezse tam geçmişe geri dönün.

YaklaşımNe zaman kullanılırKalıcılıkKod karmaşıklığı
previous_response_idHızlı chatbot, kısa iş parçacıkları30 gün (varsayılan), store: true gerekliEn düşük
Conversations APIUzun ömürlü iş parçacıkları, çok kullanıcılı uygulamalarKalıcı, temizliği siz yönetirsinizOrta
Tam geçmişi gönderTam istemci tarafı kontrol, denetim izleriSizin yönetiminizdeEn yüksek

previous_response_id kullanan iki turlu bir örnek:

python
from openai import OpenAI

client = OpenAI()

# 1. tur — yanıtın referans alınabilmesi için store=True ayarlanmalı
turn1 = client.responses.create(
    model="gpt-5",
    input="My name is Mert and I'm building a weather agent.",
    store=True,
)

# 2. tur — 1. turu kimliğiyle referans al; model ismi "hatırlıyor"
turn2 = client.responses.create(
    model="gpt-5",
    previous_response_id=turn1.id,
    input="What was my name again?",
    store=True,
)

print(turn2.output_text)  # "Your name is Mert..."

store: true ayarlamayı unutursanız previous_response_id hiçbir şeye çözümlenmez ve model her turda sıfırdan başlar. Bu hatayı giderirken bir saatimizi harcadık — API hata vermiyor, sessizce hafızasını yitiriyor. Varsayılan saklama süresi 30 gün; daha uzun süre gerekiyorsa açık iş parçacığı yaşam döngüsü kontrolü sunan Conversations API'ye geçin.

Conversations API'ye ne zaman yükseltilmeli? Bir uygulamada birden fazla kullanıcı olduğunda, iş parçacıkları tek bir oturumun ötesine geçtiğinde ya da sunucu tarafı mesaj düzenleme/dallandırma istediğinizde. Hızlı bir chatbot için previous_response_id yeterli.

Chat Completions'dan Responses API'ye Geçiş

Chat Completions'dan Responses API'ye geçiş üç adım gerektirir: /v1/chat/completions'ı /v1/responses ile değiştirin, messages'ı input ile değiştirin ve tools şemalarını yeni biçime güncelleyin. Fonksiyon çağırma ve çok modlu girişler biraz farklı işleniyor. OpenAI, GitHub'da resmi bir geçiş paketi yayımlıyor.

1. Adım — Uç nokta değişimi:

python
# Önce (Chat Completions)
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Hello"}],
)
text = response.choices[0].message.content

# Sonra (Responses)
response = client.responses.create(
    model="gpt-5",
    input="Hello",
)
text = response.output_text

2. Adım — messages → input olarak yeniden adlandırın:

python
# Önce
client.chat.completions.create(
    model="gpt-4.1",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Summarize this PDF."},
    ],
)

# Sonra — input dize, tipli öğe dizisi veya sohbet biçimli dizi kabul ediyor
client.responses.create(
    model="gpt-5",
    instructions="You are a helpful assistant.",   # system → instructions
    input="Summarize this PDF.",
)

3. Adım — Araç şemalarını güncelleyin:

python
# Önce (Chat Completions araç biçimi)
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}},
    },
}]

# Sonra (Responses araç biçimi — daha düz, iç içe "function" anahtarı yok)
tools = [{
    "type": "function",
    "name": "get_weather",
    "description": "Get current weather",
    "parameters": {"type": "object", "properties": {"city": {"type": "string"}}},
}]

Bu kadar. Bir özellik bayrağıyla trafiği kademeli olarak aktarın — bir-iki hafta boyunca aynı arayüzün arkasında Chat Completions kod yolunu canlı tutun, her iki yanıt biçimini yan yana kaydedin ve yalnızca eşdeğerliği doğruladıktan sonra %100'e geçin. Daha kapsamlı bir adaptör kalıbı istiyorsanız openai-cookbook deposundaki geçiş paketi iyi bir referans.

MCP ve Uzak MCP Sunucularını Responses API ile Nasıl Kullanırsınız?

Responses API, uzak MCP (Model Context Protocol) sunucularını araç türü olarak destekliyor. tools dizisine {"type": "mcp", "server_url": "https://mcp.example.com", "server_label": "..."} biçiminde bir giriş ekleyin. Model, MCP sunucusunun araç kataloğunu keşfeder ve bunları yerleşik araçlar gibi çağırır.

MCP'ye hiç dokunmadıysanız 30 saniyelik özet: herhangi bir hizmetin API'sini modelin çağırabileceği bir araç kataloğu olarak ortaya koymasını sağlayan açık bir protokol. Shopify, Stripe, GitHub ve giderek büyüyen bir satıcı listesi genel MCP uç noktaları çalıştırıyor. Protokolün kendisi için Model Context Protocol (MCP) derinlemesine yazımıza bakabilirsiniz.

python
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="Find me the top-ranking competitor for 'openai responses api tutorial' and summarize their content gaps.",
    tools=[{
        "type": "mcp",
        "server_url": "https://mcp.semrush.com",
        "server_label": "semrush",
        "require_approval": "never",   # üretimde "always" olarak ayarlayın
    }],
)
print(response.output_text)

MCP sunucularını herhangi bir üçüncü taraf API gibi ele alın. require_approval: "never" prototipte işe yarıyor; üretimde, tehlikeye girmiş bir MCP sunucusunun sessizce veri sızdıramaması için "always" (ya da araç izin listesi) kullanmak istiyorsunuz. Ajanınızı yönlendirmeden önce sunucunun araç kataloğunu denetleyin.

Fiyatlandırma, Oran Sınırları ve Üretimdeki Tuzaklar

Responses API fiyatlandırması token maliyetleri açısından Chat Completions ile aynıdır (istem + tamamlama), ancak yerleşik araçlar (web_search, file_search) için çağrı başına ek ücretler var. Oran sınırları mevcut OpenAI katmanınızı takip ediyor. Yaygın üretim tuzakları: store: true saklama varsayılanları, anlık trafik artışlarındaki geçici 429 hataları ve Azure varyantındaki özellik gecikmesi.

Model ailesiResponses APIYerleşik araçlarMuhakeme yoğunluğuAkışMaliyet katmanı
gpt-5Evet5 araç + MCP—EvetOpenAI fiyatlandırmasına bakın
gpt-5-miniEvet5 araç + MCP—Evetgpt-5'ten düşük
gpt-4.1Evetweb/dosya/kod/görsel—EvetOrta
o-serisi (muhakeme)Evetdosya/kodlow/medium/highEvetToken başına en yüksek
gpt-image-1Yalnızca görsel oluşturma aracı——HayırGörsel başına

Fiyatlandırma değişiyor — yazarken her zaman OpenAI fiyatlandırma sayfasından doğrulayın.

Hata yönetimi için çağrıları try/except openai.RateLimitError ve try/except openai.APIStatusError ile sarın; tenacity aracılığıyla üstel geri çekilme ekleyin:

python
from openai import OpenAI, RateLimitError, APIStatusError
from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_exponential

client = OpenAI()

@retry(
    retry=retry_if_exception_type((RateLimitError, APIStatusError)),
    wait=wait_exponential(multiplier=1, min=2, max=30),
    stop=stop_after_attempt(5),
    reraise=True,
)
def safe_create(prompt: str):
    return client.responses.create(model="gpt-5", input=prompt)

print(safe_create("Hello").output_text)

Hazırlık ortamımızda 20 paralel istek patlamasında geçici bir 429 hatasıyla karşılaştık — tenacity ile üstel geri çekilme sorunu temiz biçimde çözdü. Kaydettiğimiz hata dizesi şuydu: openai.RateLimitError: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-5 in organization org-... on requests per min (RPM)'}}. Bir kez okuyun ve devam edin; yeniden deneme dekoratörü gerisini halleder.

Azure varyantı notu: Azure OpenAI, Responses API'yi sunuyor ancak özellik desteği doğrudan OpenAI dağıtımlarının 4–8 hafta gerisinde kalıyor. Nisan 2026 itibarıyla Azure'da MCP desteği yalnızca önizleme aşamasında — yayına geçmeden önce Microsoft Learn'ün Azure OpenAI Responses API belgelerine bakın.

Ağ geçidi uyumluluğu: OpenAI'yi LiteLLM proxy üzerinden yönlendiriyorsanız, Responses API desteği 2026'da geldi. Diğer ağ geçitlerinin çoğu yetişmeye çalışıyor. Üretimde trafiği geçmeden önce YZ gözlemlenebilirliği ve günlüğü de bağlamak isteyeceksiniz — Responses API olayları Chat Completions'dan daha zengin ve her araç çağrısının kaydını tutmak istiyorsunuz.

Responses API Ne Zaman Kullanılmamalı?

Düşük gecikmeli gerçek zamanlı ses (Realtime API kullanın), embedding oluşturma (Embeddings API kullanın) ve ince ayar iş akışları için Responses API'yi atlayın. Ağ geçidiniz/proxy'niz henüz Responses'ı desteklemiyorsa (2026 itibarıyla çoğu LiteLLM aracılığıyla destekliyor) Chat Completions üzerinde kalmaya devam edin.

Birkaç daha dürüst eleme kriteri:

  • Gerçek zamanlı ses ajanları — Realtime API, WebSocket kullanır ve saniyenin altında tur geçişleri için tasarlanmıştır. Responses API akışı HTTP SSE'dir; ses için ağır hissettiriyor.
  • Salt embedding pipeline'ları — client.embeddings.create() daha ucuz, daha hızlı ve her vektör veritabanı entegrasyonunun beklediği şey.
  • İnce ayar — İnce ayar API'si aracılığıyla modelleri eğitip dağıtırsınız; ardından Responses üzerinden çağırabilirsiniz, ancak eğitimin kendisi Responses iş akışına dahil değil.
  • Toplu API işleri — Bir milyon istemi gece boyunca %50 indirimle işliyorsanız, Toplu API fiyat açısından hâlâ kazanan.
  • Kilitli Chat Completions semantiği — Değerlendirme seti, gözlemlenebilirlik ve istem kütüphanenizin tamamı chat.completions.choices[0].message.content varsayıyorsa geçiş maliyeti gerçek. Sadece daha yeni diye geçiş yapmayın.

Stack'iniz Chat Completions üzerinde mutluysa ve ajan inşa etmiyorsanız, geçiş bedavaya gelmiyor — Q2 sprint'inizin buna ihtiyacı olmayabilir. Daha yeni olan her zaman sizin için daha iyi anlamına gelmiyor — Responses API, her OpenAI iş yükü için değil, ajanlar için doğru temel birim.

Sıkça Sorulan Sorular

OpenAI Responses API Nedir?

OpenAI Responses API, Mart 2025'te kullanıma sunulmuş birleşik bir temel birimdir; Chat Completions'ın sadeliğiyle Assistants API'nin araç kullanımını birleştirir. Metin ve görsel girdi, beş yerleşik araç, fonksiyon çağırma, yapılandırılmış çıktılar, akış ve previous_response_id üzerinden durumsal konuşmaları destekler.

OpenAI Responses API Ne Zaman Yayımlandı?

OpenAI, Responses API'yi 11 Mart 2025'te "ajan geliştirmek için yeni araçlar" duyurusuyla birlikte tanıttı. API, yayımlandığından bu yana genel kullanıma açık; Conversations API, MCP desteği ve image_generation aracı 2025 ve 2026 başı boyunca artımlı güncellemelerle eklendi.

OpenAI Responses API Durumsal Mı?

Evet — isteğe bağlı olarak. previous_response_id ve store: true geçirdiğinizde model, tam geçmişi göndermenize gerek kalmadan çağrılar arasında bağlamı taşıyor. Daha uzun süreli iş parçacıkları için Conversations API açık iş parçacığı yaşam döngüsü yönetimi sunuyor. Chat Completions gibi tamamen durumsuz kalıp her turda tam geçmişi göndermeyi de seçebilirsiniz.

Responses API ile Chat Completions Arasındaki Fark Nedir?

Responses API, Chat Completions'ın bir üst kümesidir. Her Chat Completions özelliği Responses'ta çalışır; üstüne previous_response_id aracılığıyla durumsal yapı ve birinci sınıf kavram olarak ajansal döngü eklenir. OpenAI, 2026 itibarıyla tüm yeni projeler için Responses'ı öneriyor.

Chat Completions API Kullanımdan Mı Kaldırılıyor?

Hayır. Nisan 2026 itibarıyla Chat Completions kullanımdan kaldırılmadı — tam destek sürüyor. OpenAI yeni projeler için Responses'ı öneriyor ve ajan odaklı eğitimlerin çoğu Responses'ı varsayıyor. Chat Completions artık miras temel birim: kararlı, ancak yeni özellikler artık önce oraya gelmiyor.

Responses API'yi Hangi OpenAI Modelleri Destekliyor?

GPT-5, gpt-5-mini, gpt-4.1 ve o-serisi muhakeme modelleri Responses API'yi destekliyor. O-serisi, genişletilmiş düşünme iş yükleri için reasoning_effort parametresi (low, medium, high) ekliyor. Görsel oluşturma, image_generation aracını etkinleştirdiğinizde arka planda gpt-image-1 üzerinden yönlendiriliyor.

Chat Completions'dan Responses API'ye Nasıl Geçilir?

Üç adım: client.chat.completions.create()'i client.responses.create() ile değiştirin, messages dizisini input ile değiştirin (sistem istemlerini instructions'a taşıyın) ve araç şemalarını düzeltin (iç içe function anahtarını kaldırın). OpenAI'nin GitHub'daki geçiş paketi tam adaptör örnekleri içeriyor.

Responses API Akışı Destekliyor Mu?

Evet. client.responses.create() çağrısına stream=True geçirin (ya da bağlam yöneticisi olarak client.responses.stream() kullanın) ve tipli Server-Sent Event'leri döngüyle okuyun. İşleyeceğiniz token akışı olayları içerik için response.output_text.delta, son yük için response.completed'dir. Asenkron akış AsyncOpenAI aracılığıyla çalışıyor.

Responses API Azure'da Kullanılabilir Mi?

Evet. Azure OpenAI, Responses API'yi sunuyor, ancak özellik desteği OpenAI'nin doğrudan dağıtımlarının 4–8 hafta gerisinde. Nisan 2026 itibarıyla Azure'da MCP desteği önizlemede. Üretime geçmeden önce güncel Azure'a özgü durumlar için Microsoft Learn'e bakın.

Responses API MCP Sunucularıyla Çalışıyor Mu?

Evet — uzak MCP (Model Context Protocol) sunucuları birinci sınıf araç türü olarak destekleniyor. tools dizinize {"type": "mcp", "server_url": "...", "server_label": "..."} ekleyin; model sunucunun araç kataloğunu keşfeder ve herhangi bir yerleşik araç gibi çağırır. Güvenlik için üretimde require_approval: "always" kullanın.

Sonuç

Artık Responses API'nin tam resmini görüyorsunuz: Chat Completions'dan nasıl farklılaştığı, ilk çağrıyı nasıl yayına aldığınız, yerleşik araçları nasıl bağladığınız ve mevcut bir Chat Completions projesini üç adımda nasıl geçirdiğiniz. Aklınızda tutulacak birkaç nokta:

  • Önce inşa edin, sonra optimize edin. Merhaba dünya örneğiyle başlayın, bir yerleşik araç ekleyin, ardından previous_response_id ile durum katmanı ekleyin.
  • Kademeli geçiş yapın. Özellik bayrağı kullanın, her iki yanıt biçimini kaydedin, yalnızca eşdeğerliği doğruladıktan sonra %100'e geçin.
  • MCP entegrasyonlarını yayına alın. Bu, 2026'nın öne çıktığı konu — çoğu satıcı MCP uç noktalarını hızla ortaya koyuyor ve Responses API bunları kullanmanın en temiz yolu.

Techsy olarak ekiplerin OpenAI entegrasyonlarını üretime taşımasına yardımcı oluyoruz — Responses API dağıtımları ve Chat Completions geçişleri dahil. Ücretsiz danışmanlık alın.

Techsy editoryal ekibi tarafından — 2024'ten bu yana OpenAI entegrasyonları geliştiren üretim mühendisleri. Son güncelleme: 25 Nisan 2026.

Etiketler

openai responses api eğitimiopenai responses apichat completions geçişifonksiyon çağırmamcppython sdk

Bu makaleyi paylaş

İlgili Makaleler

Daha fazla ai-machine-learning

ai-machine-learning
Jul 20, 2026

Kodlama İçin Prompt Mühendisliği: Claude Code ve Cursor'da Her Gün Kullandığımız 7 Kalıp (2026)

Çoğu 'yapay zeka kodlama promptları' yazısı size kopyalayıp yapıştırmanız için 50 şablon verir. Bu yazı ise 16 ajanlı bir Claude Code pipeline'ını her gün çalıştırmak için kullandığımız 7 kalıbı, her biri için gerçek bir öncesi-sonrası örneğiyle ve 2026'da Claude Code, Cursor ve Copilot'ta her kalıbın nerede karşılığını bulduğuyla birlikte anlatıyor.

11 dakikalık okuma okuma
Oku
ai-machine-learning
Jul 20, 2026

2026'nın En İyi 8 Yapay Zeka Web Scraping API'si (Kendi Agent Stack'imizde Test Edildi)

8 yapay zeka web scraping API'sini kendi agent stack'imiz üzerinden çektiğimiz gerçek 2026 fiyatlarıyla test ettik. Firecrawl, Bright Data, ScrapingBee ve 5 tane daha; LLM'e hazır çıktı, anti-bot başarısı ve MCP desteğine göre sıraladık.

9 dk okuma okuma
Oku
ai-machine-learning
Jul 19, 2026

Qwen3.8: Alibaba'nın 2,4 Trilyonluk Açık Ağırlık Bahsi ve Gerçekte Bildiklerimiz

Alibaba'nın Qwen3.8 modeli 2,4 trilyon parametreye, açık ağırlık vaadine ve canlı bir Max-Preview'a sahip — ama tek bir yayınlanmış benchmark yok. İşte kesinleşen bilgiler, bilinmeyenler ve açık ağırlık kısmının neden asıl haber olduğu.

9 min read okuma
Oku
Tüm Yazıları Görüntüle
Projenize Başlayın

Harika bir şey inşa etmeye hazır mısınız?

Vizyonunuzu hayata geçirelim. Fark yaratan yazılımlar için ekibimiz hazır.

30 dakikalık keşif görüşmesi ayarlayınProjelerimiz

Kütüphaneden öne çıkanlar

Kaynaklar

Tümünü gör
  • Yazılım Tedarik Rehberi

    Yanlış platforma altı ay ve bir milyon dolar harcamadan yazılım satın almanın tekrarlanabilir yöntemi.

  • Mimari Karar Rehberi

    Teknoloji yığınınızı seçmek için pratik bir çerçeve: ne zaman geliştirmeli, ne zaman satın almalı, monolit mi mikroservis mi ve özgeçmiş süslemek için tasarlama tuzağından nasıl kaçınılır.

  • Tedarikçi Seçim Rehberi

    Doğru geliştirme ortağını seçmenin yolu: ajans, freelancer ya da ekip içi; fazla ödemeden ve yarım kalmış bir ürün teslim almadan.

Claude Skills

Tümünü gör
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI Otomasyonları

Tümünü gör
  • Güvenlik Denetçisi

    Önceliklendirilmiş düzeltme PR'larıyla haftalık SCA + IaC taraması.

  • Soğuk E-posta Yazarı

    Tek bir somut kamuya açık detaya dayalı ilk temas e-postaları üretir.

  • Lead Araştırma Agent'ı

    Bir e-postayı profile zenginleştirir, uygunluğu puanlar, Slack'te uyarır.

Kütüphaneden öne çıkanlar

Kaynaklar

Tümünü gör
  • Yazılım Tedarik Rehberi

    Yanlış platforma altı ay ve bir milyon dolar harcamadan yazılım satın almanın tekrarlanabilir yöntemi.

  • Mimari Karar Rehberi

    Teknoloji yığınınızı seçmek için pratik bir çerçeve: ne zaman geliştirmeli, ne zaman satın almalı, monolit mi mikroservis mi ve özgeçmiş süslemek için tasarlama tuzağından nasıl kaçınılır.

  • Tedarikçi Seçim Rehberi

    Doğru geliştirme ortağını seçmenin yolu: ajans, freelancer ya da ekip içi; fazla ödemeden ve yarım kalmış bir ürün teslim almadan.

Claude Skills

Tümünü gör
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI Otomasyonları

Tümünü gör
  • Güvenlik Denetçisi

    Önceliklendirilmiş düzeltme PR'larıyla haftalık SCA + IaC taraması.

  • Soğuk E-posta Yazarı

    Tek bir somut kamuya açık detaya dayalı ilk temas e-postaları üretir.

  • Lead Araştırma Agent'ı

    Bir e-postayı profile zenginleştirir, uygunluğu puanlar, Slack'te uyarır.

Hizmetler

  • Kurumsal Çözümler
  • Mobil Uygulamalar
  • Web Uygulamaları

Çözümler

  • CRM Sistemleri
  • Yapay Zeka Entegrasyonu
  • ERP Çözümleri
  • Sesli Asistanlar
  • Süreç Otomasyonu
  • Siber ve Veri Güvenliği

Kütüphane

  • Kaynaklar
  • Blog
  • Portfolyo

Topluluk

  • AI Otomasyonları
  • Claude Skills

Araçlar

  • Mobil Uygulama Maliyet Hesaplayıcı
  • OpenAI / LLM API Maliyet Hesaplayıcı
  • MVP Maliyet Hesaplayıcı
  • Sesli AI Ajan Maliyet Hesaplayıcı

Şirket

  • Hakkımızda
  • Partnerler
  • İletişim

Yasal

  • Gizlilik Politikası
  • Kullanım Şartları
  • Çerez Politikası

Hizmetler

  • Kurumsal Çözümler
  • Mobil Uygulamalar
  • Web Uygulamaları

Çözümler

  • CRM Sistemleri
  • Yapay Zeka Entegrasyonu
  • ERP Çözümleri
  • Sesli Asistanlar
  • Süreç Otomasyonu
  • Siber ve Veri Güvenliği

Kütüphane

  • Kaynaklar
  • Blog
  • Portfolyo

Topluluk

  • AI Otomasyonları
  • Claude Skills

Araçlar

  • Mobil Uygulama Maliyet Hesaplayıcı
  • OpenAI / LLM API Maliyet Hesaplayıcı
  • MVP Maliyet Hesaplayıcı
  • Sesli AI Ajan Maliyet Hesaplayıcı

Şirket

  • Hakkımızda
  • Partnerler
  • İletişim
YasalGizlilik PolitikasıKullanım ŞartlarıÇerez Politikası
TECHSY
© 2026 Techsy. Tüm hakları saklıdır.