ざっくり言うと
ストリーミング(Streaming)とは、AIの答えを最後まで待たず、できたところから順に表示する配信のやり方です。
ChatGPTに質問すると、文字が少しずつ書き足されていきますよね。あれがストリーミングです。
裏側では、文章が全部そろってから一度に返しているのではありません。書けた分から少しずつ送る、という配り方です。
AIが考える速さそのものは変わりません。変わるのは答えの渡し方だけです。それでも、最初のひと言は早く目に入ります。
イメージ
じつは、動画を見るときも同じ配り方です。YouTubeは、ファイル全体をダウンロードし終えてから再生するわけではありません。先頭から少しずつ受け取りながら再生します。
これも広い意味でのストリーミングです。AIのストリーミングは、その文章版だと思ってください。
正確には
ここからは、少し技術寄りの話になります。自分のアプリやサイトからAIを呼び出す予定がなければ、読み飛ばして大丈夫です。外部のサービスを自分のプログラムから呼び出す窓口を、APIと呼びます。ストリーミングにするかどうかも、この窓口へのお願いの中で指定するものです。
実際にどう指定するのか、3つのサービスで比べてみましょう。
| サービス | 返ってくる中身 |
|---|---|
| OpenAIのResponses API | stream: trueを付けると、Server-Sent Events(SSE、サーバーから小さな知らせが次々と届く配信のしくみ)で順に返る。文字の追加やツールの呼び出しなど、種類の違う知らせが混ざって届くので、受け取る側で見分けながら処理する |
| AnthropicのMessages API | stream: trueで差分をイベントとして返す。中身は書き足された文章やツールへの入力など。thinking(考えている途中)の差分が届くかどうかは、使うモデルと表示の設定によって変わる |
| GoogleのGemini API | stream: trueの指定があり、2026年7月27日時点のInteractions APIガイドがイベント配信を案内。RESTでの例ではSSEを使用 |
ただし、API名やイベントの形は更新されていきます。実装するときは、各社の現行ガイドに従ってください。
ここまではHTTPとSSEを使う例です。つなぎ方はほかにもあり、OpenAIのWebSocket modeや、GeminiのLive APIがそれにあたります。ストリーミングのAPIがすべてstream: trueとSSEを使うわけではありません。
一括で受け取る場合と、ここが違います
| 観点 | 一括取得(非ストリーミング) | ストリーミング |
|---|---|---|
| 返り方 | 全文ができてから、まとめて1回返す | 書けた先頭から、少しずつ返し続ける |
| 最初の出力が見える時間 | 原則として全文ができたあと | 最初のひとかたまりが届いた時点 |
| 体感の速さ | 待たされる | 読みながら待てる |
| 途中で止める | できあがってから結果を受け取る | 使う側で切れる場合がある。止め方と課金の扱いはAPIごとに確認 |
| 作る手間 | できあがった返事を処理する | 届く順番、エラー、完了の状態を処理する |
| 主な使い道 | まとめ処理、要約結果の保存 | チャット画面、その場での表示 |
実装を助ける道具もあります
Vercel AI SDKは、文章をストリーミングで受け取るstreamTextという関数を公式ドキュメントで案内しています。書き足された文字や各種のイベントを読むためのしくみについても、同じドキュメントに説明があります。
これは実装を楽にする道具の一例です。各社のイベントの形そのものが同じになる、という意味ではありません。
使う場面
ストリーミングが向くのは、長い答えを見せる画面です
効き目が大きいのは、全体の長さに対して、最初の数行から役に立つ情報が出始めるタイプの出力です。長い解説、コードを順に書き出す処理、要約、翻訳などが当てはまります。
- AIチャットの長い回答
- 長い文章の要約
- コードの生成や修正案
- 翻訳や議事録の整形
- 途中で止めたくなることがある処理
最初の数行を見て「方向は合っていそう」と判断できる場面ほど、効果が出やすくなります。
一方、短い分類結果や「はい / いいえ」だけを返す処理では、利点はあまりありません。画面の作りが少し複雑になるぶん、必要な場面に絞ったほうが扱いやすいです。
| 場面 | 相性 |
|---|---|
| チャットで長い回答を見せる | よい |
| 書いている途中の文章を見せる | よい |
| JSONをまとめて次の処理へ渡す | 注意が必要 |
| 分類のラベルを1つ返す | あまり必要ない |
よくある勘違い
途中の表示は、未完成として扱ってください
途中まで表示された文章は、答えとしてはまだ未完成です。完了の知らせ、エラー、切断を確かめてから、完成として扱ってください。保存やコピーをしてよい状態かどうかも、画面ではっきり分かるようにしてください。
実装やツール選びで迷ったら、2つの時間を分けて確かめてください。役に立つ最初の一部が届くまでの時間と、完了の知らせが届くまでの時間です。前者は体感の速さ、後者は処理全体の待ち時間にあたります。
ストリーミングが主によくするのは前者です。そう考えておくと、期待のずれが起きにくくなります。
注意点
関連用語
- 推論 — 学習を終えたモデルが、入力から答えを計算する工程です。
- レイテンシー — 頼んでから答えを受け取るまでの待ち時間です。
- API — 外部のサービスを自分のプログラムから呼び出すための窓口です。
やってみよう