Skip to content

デフォルトでレスポンスをストリーミングするAPIエンドポイントがいくつかあります。例えば /api/generate などです。これらのレスポンスは改行区切りJSON形式(つまり application/x-ndjson コンテンツタイプ)で提供されます。例:

json
{"model":"gemma4","created_at":"2025-10-26T17:15:24.097767Z","response":"That","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.109172Z","response":"'","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.121485Z","response":"s","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.132802Z","response":" a","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.143931Z","response":" fantastic","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.155176Z","response":" question","done":false}
{"model":"gemma4","created_at":"2025-10-26T17:15:24.166576Z","response":"!","done":true, "done_reason": "stop"}

ストリーミングの無効化

ストリーミングをサポートする任意のエンドポイントで、リクエストボディに {"stream": false} を指定することでストリーミングを無効にできます。この場合、レスポンスは代わりに application/json 形式で返されます:

json
{"model":"gemma4","created_at":"2025-10-26T17:15:24.166576Z","response":"That's a fantastic question!","done":true}

ストリーミングと非ストリーミングの使い分け

ストリーミング(デフォルト):

  • リアルタイムでのレスポンス生成
  • 知覚されるレイテンシの低減
  • 長い生成処理に適している

非ストリーミング:

  • 処理が簡単
  • 短いレスポンスや構造化された出力に適している
  • 一部のアプリケーションで扱いやすい