OpenAI Batch API Nasıl Kullanılır

OpenAI Batch API'yi öğrenin: bir JSONL dosyası yükleyin, bir toplu işlem oluşturun, durumu sorgulayın ve çıktıyı %50 indirimle alın, ayrıca Apidog'daki her uç noktayı nasıl test edeceğinizi öğrenin.

Ashley Innocent

Ashley Innocent

25 June 2026

OpenAI Batch API Nasıl Kullanılır

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Bu kılavuzun sonunda, OpenAI Toplu İş API'sini çağırarak binlerce model isteğini tek bir eşzamansız iş olarak çalıştırabilecek ve her sonucu %50 indirimle geri alabileceksiniz. İsteklerinizi bir JSONL dosyasına paketleyecek, tek bir toplu iş gönderecek, tamamlanana kadar yoklayacak ve çıktıyı indireceksiniz, ardından üretime bağlamadan önce her adımı Apidog'da test edeceksiniz. İşiniz daha etkileşimliyse, eşzamanlı yol daha uygun olacaktır ve bunun yerine ChatGPT API'sini Apidog ile test edebilirsiniz.

Toplu İş API'si Nedir ve Ne Zaman Kullanılmalıdır?

Toplu İş API'si, gecikmeye tolerans gösterebilen yüksek hacimli model çağrıları için eşzamansız bir uç noktadır. Her istek için bir HTTP isteği yapmak yerine, birçok isteği tek bir JSONL dosyasına paketler, tek bir iş olarak gönderir ve tamamlanması için yoklarsınız. OpenAI, işi yoğun olmayan zamanlarda çalıştırır ve her sonucu bir çıktı dosyasında döndürür.

İki somut fayda elde edersiniz. Birincisi, eşzamanlı API'ye kıyasla hem girdi hem de çıktı tokenlarında %50 sabit bir indirim. İkincisi, toplu işler ayrı bir hız sınırı havuzu kullandığından ve canlı trafiğinizle rekabet etmediğinden daha yüksek verim. Dezavantajı ise gecikmedir. OpenAI, 24 saat içinde tamamlanmayı taahhüt eder; birçok iş daha erken biter, ancak buna güvenemezsiniz.

İş çevrimdışı ve toplu nitelikte olduğunda toplu işlemeyi tercih edin:

Bir kullanıcının beklediği herhangi bir şey için bunu atlayın. Sohbet kullanıcı arayüzleri, otomatik tamamlama ve canlı aracılar eşzamanlı uç noktalara ihtiyaç duyar. Aynı anda birçok model veya aracı yapılandırması oluşturuyorsanız, toplu işleme bu iş yüküyle iyi uyum sağlar; toplu işlemeyle 100'den fazla aracı yapılandırması oluşturma hakkındaki rehberimize bakın.

Başlamadan Önce İhtiyaç Duyduklarınız

Tüm akış, iki uç nokta olan /v1/files ve /v1/batches ile dört adımdan oluşur. Çağrılara bakmadan önce şeması aşağıdadır.

Adım Uç Nokta Ne Olur
1. Yükle POST /v1/files .jsonl dosyanızı purpose: "batch" ile gönderin, bir dosya kimliği alın
2. Oluştur POST /v1/batches Dosya kimliğini bir uç nokta ve tamamlama penceresiyle gönderin
3. Yokla GET /v1/batches/{id} status değeri completed olana kadar kontrol edin
4. Al GET /v1/files/{id}/content output_file_id aracılığıyla sonuçları indirin

Devam etmek için OPENAI_API_KEY olarak dışa aktarılmış bir OpenAI API anahtarına, bir istek JSONL dosyasına ve çağrıları tetikleyip incelemek için bir araca ihtiyacınız var. Her adım, üzerinde doğrulama yapabileceğiniz bir nesne döndürür, bu da tüm yaşam döngüsünü test etmeyi kolaylaştırır.

Adım 1: JSONL dosyasını oluşturun ve yükleyin

Girdiniz, her satırın kendi içinde bir istek olduğu bir JSONL dosyasıdır. Her satır dört alana ihtiyaç duyar: seçtiğiniz bir custom_id (sonuçları girdilerle eşleştirebilmek için), method (POST), url (/v1/chat/completions gibi hedef uç nokta) ve gerçek istek parametrelerini tutan bir body.

{"custom_id": "req-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-4.1-mini", "messages": [{"role": "user", "content": "Classify the sentiment of: 'shipping was slow but the product is great'"}]}}
{"custom_id": "req-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-4.1-mini", "messages": [{"role": "user", "content": "Classify the sentiment of: 'returned it the same day'"}]}}

custom_id dosya içinde benzersiz olmalıdır. Sonuçlar belirli bir sırada gelmez, bu nedenle her yanıtı kaynak satırına yeniden bağlamak için bu kimliği kullanırsınız. Tek bir toplu iş 50.000 adede kadar istek içerebilir ve dosya 200 MB'a kadar olabilir.

batch amacı ile Dosyalar API'ye yükleyin:

curl https://api.openai.com/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F purpose="batch" \
  -F file="@requests.jsonl"

Yanıt bir dosya id'si (file-abc123 gibi bir şey) taşır. Bu, bir sonraki adım için input_file_id'nizdir.

Adım 2: Toplu işi oluşturun

Şimdi işi oluşturun. input_file_id, hedeflediğiniz endpoint ve completion_window'u geçirirsiniz. Bugün completion_window tek bir değer, "24h" kabul eder.

curl https://api.openai.com/v1/batches \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_file_id": "file-abc123",
    "endpoint": "/v1/chat/completions",
    "completion_window": "24h",
    "metadata": {"job": "sentiment-backfill"}
  }'

endpoint alanı, JSONL satırlarınızda kullanılan url ile eşleşmelidir. Desteklenen hedefler arasında /v1/chat/completions, /v1/responses, /v1/embeddings, /v1/completions ve /v1/moderations bulunur. İsteğe bağlı metadata nesnesi, daha sonra filtrelemek isteyeceğiniz işleri etiketlemek için kullanışlı olan 16 adede kadar anahtar-değer çifti tutar.

Çağrı bir toplu iş nesnesi döndürür. En çok önemseyeceğiniz alanlar:

{
  "id": "batch_abc123",
  "object": "batch",
  "endpoint": "/v1/chat/completions",
  "input_file_id": "file-abc123",
  "completion_window": "24h",
  "status": "validating",
  "output_file_id": null,
  "error_file_id": null,
  "request_counts": { "total": 0, "completed": 0, "failed": 0 },
  "created_at": 1733452800,
  "metadata": { "job": "sentiment-backfill" }
}

Adım 3: Toplu işin durumunu yoklayın

Yeni bir toplu iş validating durumunda başlar. Buradan bir dizi belgelenmiş duruma geçer. GET /v1/batches/{batch_id} adresini yoklayın ve status alanını okuyun.

Durum Anlamı
validating Girdi dosyası çalıştırma başlamadan önce kontrol ediliyor
in_progress İstekler işleniyor
finalizing Çalıştırma tamamlandı ve çıktı dosyası hazırlanıyor
completed Tamamlandı; sonuçlar indirilmeye hazır
failed Doğrulama başarısız oldu; hiçbir şey çalıştırılmadı
expired 24 saatlik süre tüm istekler tamamlanmadan sona erdi
cancelling / cancelled Bir iptal talebinde bulundunuz

request_counts nesnesi (total, completed, failed), durum in_progress iken size canlı ilerleme sağlar. Burada bekleyecek bir webhook yoktur, bu nedenle makul aralıklarla yoklama (her birkaç dakikada bir, her saniye değil) doğru yöntemdir. Yanlışlıkla gönderdiyseniz, POST /v1/batches/{batch_id}/cancel ile çalışan bir işi de iptal edebilirsiniz.

Adım 4: Çıktıyı alın

status completed olarak okunduğunda, toplu iş nesnesi bir output_file_id taşır. Bu dosyanın içeriğini Dosyalar API'si aracılığıyla indirin:

curl https://api.openai.com/v1/files/file-output456/content \
  -H "Authorization: Bearer $OPENAI_API_KEY" > results.jsonl

Çıktı yine JSONL'dir, istek başına bir satır. Her satır, belirlediğiniz custom_id'yi ve durum kodunu ve gövdeyi içeren bir response nesnesini yansıtır. Hata veren istekler error_file_id ile referans verilen dosyada görünür, bu yüzden her ikisini de kontrol edin. Sonuçları girdilerle custom_id üzerinden eşleştirin, satır sırasına göre değil.

Maliyet ve Süre Değişimlerini Göz Önünde Bulundurun

Matematik basit: tokenlarda %50 tasarruf edersiniz ve 24 saate kadar bir geri dönüş süresini kabul edersiniz. Tek seferlik bir veri doldurma veya gece çalışan bir iş için bu kolay bir karardır. Ürününüzün kritik yolundaki bir özellik için ise öyle değildir.

Birkaç pratik not:

Apidog'da Nasıl Test Edilir?

Toplu İş API'si, tek bir sohbet çağrısından daha hataya açıktır, çünkü hata modları dosyalar, JSONL biçimlendirmesi ve bir yoklama döngüsüne yayılmıştır. 50.000 istekli bir dosyadaki hatalı biçimlendirilmiş bir satır, tüm yüklemeyi başarısız kılar ve doğrulama çalışana kadar bunu bilemezsiniz. Yaşam döngüsü uç noktalarını otomatikleştirmeden önce test etmek, bu gidiş-dönüş süresinden sizi kurtarır.

Apidog, her adımı bir istek olarak çalıştırabileceğiniz, bunları zincirleyebileceğiniz ve yanıtlarda doğrulama yapabileceğiniz bir API platformudur. Uç noktaları test eder ve taklit eder; bir OpenAI SDK'sı değildir. Gerçekçi bir kurulum şöyle görünür:

Çıktı dosyası daha sonra geldiği için, örnek bir tamamlanmış toplu iş nesnesi ve önceden hazırlanmış bir sonuç dosyası döndüren bir sahte API de kurabilirsiniz. Bu, gerçek bir 24 saatlik işi beklemeden ve geliştirme sırasında token harcamadan alma ve ayrıştırma mantığınızı oluşturmanıza ve test etmenize olanak tanır. Ekibiniz önce spesifikasyonla çalıştığında, doğrudan bir OpenAPI spesifikasyonundan bir test koleksiyonu oluşturabilir ve toplu iş uç noktalarını CI'da regresyon kapsamı altında tutabilirsiniz.

Sıkça Sorulan Sorular

Bir toplu iş aslında ne kadar sürer?

OpenAI, bir toplu işi 24 saat içinde tamamlamayı taahhüt eder. Pratikte birçok iş daha hızlı biter, ancak garanti 24 saatlik tavandır, bu yüzden sisteminizi buna göre kurun. Süreç tamamlanmadan kapanırsa, toplu iş expired durumuna geçer ve yalnızca tamamlanan istekler döndürülür ve faturalandırılır.

Gerçek indirim nedir ve birleşir mi?

Toplu İş API'si, eşzamanlı uç noktalara kıyasla hem girdi hem de çıktı tokenlarında %50 sabit bir indirim sağlar. OpenAI'ın çevrimdışı iş yükleri için sunduğu en büyük maliyet kaldıracıdır. Bu harcamayı özelliklere veya işlere geri atfetmeye çalışıyorsanız, maliyet atfetme kılavuzu bunu nasıl dilimleyeceğinizi gösterir.

Bir toplu işte hangi uç noktaları çalıştırabilirim?

Hedefi hem JSONL url'sinde hem de toplu işin endpoint alanında ayarlarsınız ve bunların eşleşmesi gerekir. Desteklenen hedefler arasında /v1/chat/completions, /v1/responses, /v1/embeddings, /v1/completions ve /v1/moderations ile görüntü ve video uç noktaları bulunur. OpenAI zamanla bu listeyi genişlettiği için tam liste için güncel belgelere bakın.

Sonuçlarım neden sırasız?

Tasarıma göre sıralı değillerdir. Çıktı JSONL, girdi satırı sırasını korumaz; bu da her isteğin neden benzersiz bir custom_id'ye ihtiyaç duyduğunu açıklar. Sonuçları bu kimlik üzerinden girdilerle eşleştirin. İki satır aynı custom_id'yi paylaşıyorsa, yanıtlarını güvenilir bir şekilde ayırt edemezsiniz.

Sonuç

Artık tüm akışa sahipsiniz: isteklerinizi bir JSONL dosyasına paketleyin, yükleyin, toplu işi oluşturun, durumu yoklayın ve çıktıyı alın; tüm bunlar 24 saatlik bir pencerede token maliyetinin yarısına. Her adım, doğrulayabileceğiniz bir nesne döndürür, bu nedenle JSONL biçimi ve yoklama döngüsü doğru olduğunda, gerisi mekaniktir.

Otomatikleştirmeden önce yaşam döngüsünü elle çalıştırın. İstek dosyanızı doğrulamak, yükleme, oluşturma, yoklama ve iptal uç noktalarını denemek ve toplu iş nesnesi alanlarını doğrulamak için Apidog'u indirin, böylece hatalı biçimlendirilmiş bir satır size asla 24 saatlik bir gidiş-dönüşe mal olmaz.

Düğme

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin