コンテンツにスキップ
メインサイト ニュース コンソール

ストリーミング出力

リクエストで "stream": true を設定すると、レスポンスは Server-Sent Events(SSE) として逐次返却されます。 チャット画面のタイプライター効果や長い応答のシーンに適しています。

リクエスト

Terminal window
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 )。そうしないとストリーミング効果が失われます。