コンテンツにスキップ

ストリーミング

すべての生成系エンドポイントはストリーミングに対応しています。リクエストに stream: true を指定すると、レスポンスは Server-Sent Events (SSE) として配信されます。

stream = client.chat.completions.create(
model="...",
messages=[{"role": "user", "content": "Hello"}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
  • OpenAI 形式: data: {...} イベント (choices[].delta のチャンク) と最終の data: [DONE]。
  • Anthropic 形式: 型付きイベント — message_start、content_block_delta、message_delta、message_stop。
  • ai& の trailer (OpenAI 形式、オプトイン): リクエストヘッダ X-Aiand-Metrics: true を付与すると、モデルの終端イベントの後ろにトークン数・コスト・通貨を含む metrics イベントを ai& が追記します。ストリーミングイベント を参照。

OpenAI 形式では stream_options.include_usage = true を指定すると、trailer イベントの直前の最終 SSE イベントに usage が含まれます。Anthropic 形式は常に message_delta に usage を含みます。