ストリーミング
すべての生成系エンドポイントはストリーミングに対応しています。リクエストに stream: true を指定すると、レスポンスは Server-Sent Events (SSE) として配信されます。
ストリーミングを有効化する
Section titled “ストリーミングを有効化する”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="")with client.messages.stream( model="...", max_tokens=1024, messages=[{"role": "user", "content": "Hello"}],) as stream: for text in stream.text_stream: print(text, end="")curl https://api.aiand.com/v1/chat/completions \ -H "Authorization: Bearer sk-..." \ -d '{"model":"...","stream":true,"messages":[{"role":"user","content":"Hello"}]}'- 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& が追記します。ストリーミングイベント を参照。
ストリーム中の usage / コスト
Section titled “ストリーム中の usage / コスト”OpenAI 形式では stream_options.include_usage = true を指定すると、trailer イベントの直前の最終 SSE イベントに usage が含まれます。Anthropic 形式は常に message_delta に usage を含みます。