OpenAI WebSocket API: Gerçek Zamanlı Streaming %75 Daha Düşük Maliyetle
Smart AIPI artık gerçek zamanlı, çift yönlü streaming için OpenAI'nin WebSocket API'sini destekliyor. SSE'den daha düşük gecikme, kalıcı bağlantılar ve %75 daha ucuz. Nasıl bağlanacağınız aşağıda.
Kısaca: Smart AIPI artık OpenAI'nin WebSocket API'sini destekliyor. wss://api.smartaipi.com/v1/realtime adresine bağlanın, bir response.create olayı gönderin ve kalıcı bir bağlantı üzerinden yanıtları gerçek zamanlı olarak stream edin. Aynı modeller, aynı protokol, %75 daha ucuz.
WebSocket streaming, AI modelleriyle etkileşim kurmanın en hızlı yoludur. Geleneksel HTTP isteklerinin ve hatta Server-Sent Events (SSE) yaklaşımının aksine, WebSocket uygulamanız ile API arasında kalıcı, çift yönlü bir bağlantı sürdürür. Her istek için bağlantı kurulumu yok, HTTP ek yükü yok, half-duplex sınırlamaları yok.
Smart AIPI artık bu protokolü wss://api.smartaipi.com/v1/realtime adresinde destekliyor — OpenAI'nin WebSocket API'siyle tamamen uyumlu, %75 daha düşük maliyetle.
Neden SSE Yerine WebSocket?
Server-Sent Events, AI streaming için standart yaklaşım oldu, ancak WebSocket'in ortadan kaldırdığı bazı ödünleşimleri beraberinde getirir:
| Özellik | SSE (HTTP) | WebSocket |
|---|---|---|
| İstek başına bağlantı | Her seferinde yeni bağlantı | Kalıcı (yeniden kullanılır) |
| Yön | Yalnızca Server → Client | Çift yönlü |
| Tek bağlantıda birden fazla istek | Hayır | Evet |
| İlk-token gecikmesi | Daha yüksek (yeni TCP + TLS) | Daha düşük (bağlantı yeniden kullanımı) |
| İdeal kullanım | Basit entegrasyonlar | Agent'lar, gerçek zamanlı uygulamalar, yüksek throughput |
Arka arkaya onlarca API çağrısı yapan agent döngülerinde, kalıcı bir WebSocket bağlantısının sağladığı birikimli gecikme tasarrufu önemlidir.
Nasıl Çalışır
WebSocket API, event-driven bir protokol izler. JSON event'lerini sunucuya gönderirsiniz ve JSON event'lerini geri alırsınız — hepsi tek bir kalıcı bağlantı üzerinden.
1. Bağlanın ve Kimlik Doğrulayın
Header'larda API key ile bir WebSocket bağlantısı açın:
wss://api.smartaipi.com/v1/realtime
Authorization: Bearer sk-proj-your-smart-aipi-key
OpenAI-Beta: realtime=v1
2. Bir İstek Gönderin
prompt'unuzla birlikte bir response.create event'i gönderin:
{
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": false,
"instructions": "You are a helpful assistant.",
"input": [
{
"type": "message",
"role": "user",
"content": [
{ "type": "input_text", "text": "What is WebSocket?" }
]
}
]
}
}
Not: store: false parametresi Smart AIPI WebSocket bağlantıları için zorunludur.
3. Streaming Event'lerini Alın
Sunucu, yanıt oluşturulurken bir dizi event geri gönderir:
| Event | Açıklama |
|---|---|
| response.created | Response nesnesi oluşturuldu |
| response.output_item.added | Yeni output öğesi (message) başlatıldı |
| response.content_part.added | Bir output öğesi içinde içerik parçası başlatıldı |
| response.output_text.delta | Metin parçası (gerçek stream edilen içerik) |
| response.output_text.done | Metin çıktısı tamamlandı |
| response.completed | Yanıtın tamamı bitti (terminal event) |
Kod Örnekleri
Node.js
import WebSocket from "ws";
const ws = new WebSocket("wss://api.smartaipi.com/v1/realtime", {
headers: {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
},
});
ws.on("open", () => {
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-5.3-codex",
store: false,
input: [{
type: "message",
role: "user",
content: [{ type: "input_text", text: "Hello!" }],
}],
},
}));
});
ws.on("message", (data) => {
const event = JSON.parse(data);
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
if (event.type === "response.completed") {
console.log("\n\nDone. Usage:", event.response.usage);
ws.close();
}
});
Python
import asyncio
import json
import websockets
async def main():
headers = {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
}
async with websockets.connect(
"wss://api.smartaipi.com/v1/realtime",
extra_headers=headers,
) as ws:
await ws.send(json.dumps({
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": False,
"input": [{
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}],
}],
},
}))
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_text.delta":
print(event["delta"], end="", flush=True)
if event["type"] == "response.completed":
print(f"\n\nUsage: {event['response']['usage']}")
break
asyncio.run(main())
cURL (Hızlı Test)
WebSocket handshake işleminin tek bir komutla başarılı olduğunu doğrulayın:
curl -isN --http1.1 \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Sec-WebSocket-Version: 13" \
-H "Sec-WebSocket-Key: dGVzdA==" \
-H "Authorization: Bearer sk-proj-your-key" \
-H "OpenAI-Beta: realtime=v1" \
https://api.smartaipi.com/v1/realtime
Başarılı bir bağlantı HTTP/1.1 101 Switching Protocols döndürür.
WebSocket ve SSE Ne Zaman Kullanılmalı?
Her iki protokol de Smart AIPI üzerinden çalışır. Kullanım senaryonuza göre seçin:
- SSE kullanın basit entegrasyonlar, tek seferlik istekler ve mümkün olan en basit implementasyonu istediğiniz durumlar için. Herhangi bir standart API çağrısında
stream: trueayarlayın. - WebSocket kullanın agent döngüleri, etkileşimli uygulamalar, yüksek frekanslı istek desenleri ve ardışık çağrılar arasında mümkün olan en düşük gecikmeye ihtiyaç duyduğunuz her yer için.
Fiyatlandırma
WebSocket istekleri, standart API istekleriyle aynı şekilde — token kullanımına göre — faturalandırılır. %75 indirim şu şekilde uygulanır:
| Model | Doğrudan OpenAI | Smart AIPI | Tasarruf |
|---|---|---|---|
| GPT-5.3 Codex (output) | $14.00 / 1M tokens | $3.50 / 1M tokens | 75% |
| GPT-5.2 (output) | $10.00 / 1M tokens | $2.50 / 1M tokens | 75% |
| Codex Mini (output) | $0.60 / 1M tokens | $0.15 / 1M tokens | 75% |
Başlarken
- Bir API key alın — smartaipi.com üzerinden kaydolun (ücretsiz krediler dahildir, kredi kartı gerekmez)
- Bağlanın —
wss://api.smartaipi.com/v1/realtimeadresine bir WebSocket bağlantısı açın - Event gönderin — modeliniz ve prompt'unuz ile
response.createzarfını kullanın - Yanıtları stream edin — geldikçe
response.output_text.deltaevent'lerini işleyin
OpenAI'nin WebSocket API'sini zaten kullanıyorsanız, değiştirmeniz gereken tek şey URL'dir. Diğer her şey — authentication, event'ler, payload formatı — aynıdır.
Sık Sorulan Sorular
Smart AIPI, OpenAI WebSocket API'sini destekliyor mu?
Evet. Authorization header'ında API key'iniz ile wss://api.smartaipi.com/v1/realtime adresine bağlanın. Protokol, OpenAI'nin WebSocket Responses API'siyle tamamen uyumludur.
WebSocket, SSE'den daha mı hızlı?
Ardışık isteklerde evet. WebSocket kalıcı bir bağlantı sürdürür ve SSE'nin her yeni istekte oluşturduğu TCP ve TLS handshake ek yükünü ortadan kaldırır. Tek seferlik isteklerde fark ihmal edilebilir düzeydedir.
WebSocket üzerinden hangi modeller çalışır?
Responses API üzerinden sunulan tüm modeller: GPT-5.3 Codex, GPT-5.2, Codex Mini ve diğerleri. Modeli response.create event'inde belirtin.
Function calling ve tool use WebSocket üzerinden çalışır mı?
Evet. Responses API'nin tüm özellik seti kullanılabilir — function calling, tool use, structured outputs ve multi-turn konuşmaların tamamı WebSocket bağlantısı üzerinden çalışır.
Bağlantı için bir süre sınırı var mı?
Boşta kalan bağlantılar 15 dakika sonra kapatılır. Gerektikçe periyodik mesajlar gönderin veya yeniden bağlanın. Veri stream eden aktif bağlantılar kesintiye uğratılmaz.
Tek bağlantıda birden fazla istek gönderebilir miyim?
Evet. Bu, temel avantajlardan biridir. Bir yanıt tamamlandıktan sonra, yeniden bağlanmadan aynı bağlantı üzerinden başka bir response.create event'i gönderin.
OpenAI uyumlu API gateway. En gelişmiş AI modellere %75 daha düşük maliyetle erişin.
Ücretsiz başlayın