OpenAI WebSocket API: streaming בזמן אמת בעלות נמוכה ב-75%
Smart AIPI תומך עכשיו ב-OpenAI WebSocket API עבור streaming דו-כיווני בזמן אמת. זמן השהיה נמוך יותר מ-SSE, חיבורים מתמשכים, וזול ב-75%. כך מתחברים.
בקצרה: Smart AIPI תומך עכשיו ב-OpenAI WebSocket API. התחברו אל wss://api.smartaipi.com/v1/realtime, שלחו אירוע response.create, וקבלו streaming של תגובות בזמן אמת דרך חיבור מתמשך. אותם מודלים, אותו protocol, זול ב-75%.
WebSocket streaming הוא הדרך המהירה ביותר לעבוד עם מודלי AI. בשונה מבקשות HTTP מסורתיות או אפילו Server-Sent Events (SSE), WebSocket שומר על חיבור מתמשך ודו-כיווני בין האפליקציה שלכם לבין ה-API. אין הקמת חיבור מחדש לכל בקשה, אין תקורת HTTP, ואין מגבלות של half-duplex.
Smart AIPI תומך עכשיו ב-protocol הזה ב-wss://api.smartaipi.com/v1/realtime — תואם באופן מלא ל-OpenAI WebSocket API, ובעלות נמוכה ב-75%.
למה WebSocket ולא SSE?
Server-Sent Events היו הסטנדרט עבור AI streaming, אבל הם מגיעים עם פשרות ש-WebSocket מבטל:
| יכולת | SSE (HTTP) | WebSocket |
|---|---|---|
| חיבור לכל בקשה | חיבור חדש בכל פעם | מתמשך (בשימוש חוזר) |
| כיוון | Server → Client בלבד | דו-כיווני |
| כמה בקשות על חיבור אחד | לא | כן |
| זמן השהיה עד ה-token הראשון | גבוה יותר (TCP + TLS חדשים) | נמוך יותר (שימוש חוזר בחיבור) |
| אידיאלי עבור | אינטגרציות פשוטות | Agents, אפליקציות בזמן אמת, ותעבורה גבוהה |
בלולאות agent שמבצעות עשרות קריאות API ברצף, החיסכון המצטבר בזמן השהיה מחיבור WebSocket מתמשך הוא משמעותי.
איך זה עובד
ה-WebSocket API פועל לפי protocol מונחה-אירועים. אתם שולחים אירועי JSON לשרת ומקבלים בחזרה אירועי JSON — הכול דרך חיבור מתמשך יחיד.
1. התחברות ואימות
פתחו חיבור WebSocket עם ה-API key שלכם ב-headers:
wss://api.smartaipi.com/v1/realtime
Authorization: Bearer sk-proj-your-smart-aipi-key
OpenAI-Beta: realtime=v1
2. שליחת בקשה
שלחו אירוע response.create עם ה-prompt שלכם:
{
"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?" }
]
}
]
}
}
הערה: הפרמטר store: false נדרש עבור חיבורי Smart AIPI WebSocket.
3. קבלת אירועי streaming
השרת מחזיר רצף של אירועים בזמן שהתגובה נוצרת:
| אירוע | תיאור |
|---|---|
| response.created | אובייקט התגובה נוצר |
| response.output_item.added | פריט פלט חדש (message) התחיל |
| response.content_part.added | חלק תוכן התחיל בתוך פריט פלט |
| response.output_text.delta | מקטע טקסט (התוכן האמיתי שמוזרם) |
| response.output_text.done | פלט הטקסט הושלם |
| response.completed | כל התגובה הסתיימה (אירוע סופי) |
דוגמאות קוד
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 (בדיקה מהירה)
ודאו שה-WebSocket handshake מצליח עם פקודה אחת:
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
חיבור מוצלח מחזיר HTTP/1.1 101 Switching Protocols.
מתי להשתמש ב-WebSocket לעומת SSE
שני ה-protocols עובדים דרך Smart AIPI. בחרו לפי מקרה השימוש שלכם:
- השתמשו ב-SSE עבור אינטגרציות פשוטות, בקשות חד-פעמיות, וכשאתם רוצים את המימוש הפשוט ביותר. הגדירו
stream: trueבכל קריאת API רגילה. - השתמשו ב-WebSocket עבור לולאות agent, אפליקציות אינטראקטיביות, דפוסי בקשות בתדירות גבוהה, ובכל מקום שבו אתם צריכים את זמן ההשהיה הנמוך ביותר בין קריאות עוקבות.
תמחור
בקשות WebSocket מחויבות כמו בקשות API רגילות — לפי שימוש ב-token. ההנחה של 75% חלה:
| מודל | OpenAI Direct | Smart AIPI | חיסכון |
|---|---|---|---|
| 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% |
תחילת עבודה
- קבלו API key — הירשמו ב-smartaipi.com (כולל קרדיטים חינמיים, ללא צורך בכרטיס אשראי)
- התחברו — פתחו WebSocket אל
wss://api.smartaipi.com/v1/realtime - שלחו אירועים — השתמשו במעטפת
response.createעם המודל וה-prompt שלכם - הזרימו תגובות — עבדו עם אירועי
response.output_text.deltaכשהם מגיעים
אם אתם כבר משתמשים ב-OpenAI WebSocket API, השינוי היחיד הוא ה-URL. כל השאר — authentication, אירועים, ופורמט ה-payload — זהה.
שאלות נפוצות
האם Smart AIPI תומך ב-OpenAI WebSocket API?
כן. התחברו אל wss://api.smartaipi.com/v1/realtime עם ה-API key שלכם ב-header Authorization. ה-protocol תואם באופן מלא ל-OpenAI WebSocket Responses API.
האם WebSocket מהיר יותר מ-SSE?
לבקשות עוקבות, כן. WebSocket שומר על חיבור מתמשך, וכך מבטל את תקורת ה-handshake של TCP ו-TLS ש-SSE מוסיף לכל בקשה חדשה. עבור בקשות בודדות וחד-פעמיות, ההבדל זניח.
אילו מודלים עובדים דרך WebSocket?
כל המודלים הזמינים דרך Responses API: GPT-5.3 Codex, GPT-5.2, Codex Mini, ואחרים. מציינים את המודל באירוע response.create.
האם function calling ו-tool use עובדים דרך WebSocket?
כן. כל סט היכולות של Responses API זמין — function calling, tool use, structured outputs, ושיחות מרובות-תורות עובדים כולם דרך חיבור ה-WebSocket.
האם יש מגבלת זמן לחיבור?
חיבורים לא פעילים נסגרים אחרי 15 דקות. שלחו הודעות תקופתיות או התחברו מחדש לפי הצורך. חיבורים פעילים שמזרימים נתונים אינם מופרעים.
האם אפשר לשלוח כמה בקשות על אותו חיבור?
כן. זה אחד היתרונות המרכזיים. אחרי שתגובה מסתיימת, שלחו אירוע response.create נוסף על אותו חיבור בלי להתחבר מחדש.