ストリーミング出力
リクエストで "stream": true を設定すると、レスポンスは Server-Sent Events(SSE) として逐次返却されます。
チャット画面のタイプライター効果や長い応答のシーンに適しています。
リクエスト
curl https://api.4allapi.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AIPROXY_KEY" \ -d '{ "model": "gpt-5.6", "messages": [{"role": "user", "content": "星空についての短い詩を書いて"}], "stream": true, "stream_options": {"include_usage": true} }'レスポンスストリーム
各イベントは data: プレフィックス付きの JSON 1 行で、増分内容は
choices[0].delta.content に含まれます。ストリーム終了時には data: [DONE] が送信されます:
data: {"choices":[{"delta":{"content":"夜"}}], ...}data: {"choices":[{"delta":{"content":"空"}}], ...}...data: {"choices":[],"usage":{"prompt_tokens":18,"completion_tokens":56,"total_tokens":74}}data: [DONE]SDK の例(Python)
stream = client.chat.completions.create( model="gpt-5.6", messages=[{"role": "user", "content": "星空についての短い詩を書いて"}], stream=True,)for chunk in stream: delta = chunk.choices[0].delta.content if chunk.choices else None if delta: print(delta, end="", flush=True)注意事項
- ストリーミング接続の読み取りタイムアウトは 60 秒以上に設定することを推奨します。長い応答の推論モデルでは適宜さらに長くしてください;
- クライアントが接続を中断した後でも、生成済みの部分は実際の使用量に基づいて課金されます;
- プロキシ/ゲートウェイ経由で転送する場合は、レスポンスバッファリングを無効にする必要があります(例: nginx の
proxy_buffering off)。そうしないとストリーミング効果が失われます。