ストリーミング(Streaming)とは、AIの回答を全部作り終えてからまとめて渡すのではなく、できた部分から順番に受け取る方法です。ChatGPTなどのチャット画面で、文字が少しずつ書き足されていく表示が身近な例です。
ストリーミングを使うと、長い回答が完成する前に読み始められます。ただし、AIの計算速度そのものが速くなることや、答え全体が早く完成することを保証する機能ではありません。
この記事では、ピザの例えを使いながら、一括表示との違い、向いている用途、途中で止まった場合の注意点、APIでの仕組みを説明します。技術的な部分は2026年10月15日にOpenAI・Anthropic・Googleなどの公式資料を照合しました。
ざっくり言うと
| 知りたいこと | 答え |
|---|---|
| ストリーミングとは? | AIが作った回答を小さなまとまりごとに順次届ける方法 |
| 何が便利? | 全文の完成を待たず、先頭から読み始められる |
| AIの計算が速くなる? | 原則として別問題。生成速度そのものを上げる仕組みではない |
| 何文字ずつ届く? | 必ず1文字ずつではない。単語の一部や文字列のまとまりで届く場合がある |
| 途中まで表示された文章は完成? | 未完成。完了・失敗・切断の状態を確認する |
| APIでも使える? | 使える。OpenAI・Claude・Geminiなどで指定方法とイベント形式は異なる |
まずは「出来上がった部分を先に受け取れる」という意味を覚えれば十分です。
イメージ
1. ピザの例で、一括取得との違いを知ろう
ピザを受け取る場面に例えると、こう考えられます。
- 一括取得(ストリーミングなし)
注文したピザのすべてのピースがそろうまで待ち、完成してからまとめて渡してもらう。 - ストリーミングあり
先に焼けたピースから順に渡してもらい、残りを待ちながら食べ始める。
AIの回答でも同じように、最初の部分だけ先に受け取れるため、完成前から読み始められます。大切なのは、ピザを焼く速さそのものが上がるわけではなく、渡すタイミングが変わるという点です。
チャット画面では、こう見える
たとえばAIへ「旅行の準備を5項目で説明して」と頼んだ場合を考えます。
一括取得の場合
(回答を生成している間は待機)
- 交通手段を確認する。2. 宿泊先を確認する。3. 持ち物を整理する。4. 天気を調べる。5. 予定を共有する。
ストリーミングの場合
交通手段を確認する。
交通手段を確認する。2. 宿泊先を確認する。
交通手段を確認する。2. 宿泊先を確認する。3. 持ち物を整理する。……
この例は表示の違いを説明するための模式例で、実際のAIによる出力結果ではありません。
なお、YouTubeなどの動画も、全ファイルの取得を待たずに再生できる「ストリーミング」の一例です。ただし、動画は用意された映像を順次届ける場合が多いのに対し、会話AIではその場で新たに作られる文章を順次届けるという違いがあります。
正確には
2. なぜストリーミングは「速く感じる」の?
待ち時間には、少なくとも次の2つがあります。
- 最初の文字・情報が届くまでの時間
返事が始まったと感じるまでの待ち時間。 - 最後まで回答が完成する時間
全文がそろい、処理が終わるまでの時間。
ストリーミングは、特に最初の情報が表示されるまでの待ち方を改善します。OpenAIの公式レイテンシーガイドも、ストリーミングを利用者の待ち時間を減らす方法として紹介しています。
| 観点 | 一括取得 | ストリーミング |
|---|---|---|
| 回答を読めるタイミング | 基本的に全文が完成してから | 最初の部分が届いたら |
| 長い回答を待つ体験 | 完成まで内容が見えない | 続きを待ちながら読める |
| AIがトークンを生成する速度 | モデルや処理条件による | ストリーミングだけで速くなるとは限らない |
| 全文が完成する時間 | モデル・通信・処理条件による | 同じく条件による。必ず短縮されるわけではない |
| 画面やアプリの実装 | 完成した本文を受け取る | 部分の追加、完了、エラーなどを扱う必要がある |
ただし、最初の文字も必ずすぐ出るわけではありません。AIが長い資料を読んでいたり、検索・ツール処理を行っていたりすると、最初の回答が表示されるまで待つ場合があります。通信状態やサービスの混雑も影響します。
表示される「考えています」「検索しています」などの状態メッセージも、回答の文字が順次配信されることとは別の仕組みの場合があります。
3. どんな場面でストリーミングが役立つ?
長い文章をその場で見せる用途では、完成を待たずに読み始められることに意味があります。
| 場面 | 相性 | 理由 |
|---|---|---|
| 長文のチャット回答 | よい | 最初の段落から読める |
| 文章の要約・翻訳 | よい | 冒頭の結果を先に確認できる |
| コードの生成や修正案 | よい | 書かれ始めたコードを目で追える。ただし実行は完成後 |
| 長い議事録の整理 | よい | 見出しや要点から順に確認できる |
| 「はい/いいえ」だけを返す分類 | 利点が小さい | 短すぎて分割配信の効果が少ない |
| 正しい形式のJSONを受け取って自動処理する | 注意が必要 | 途中のJSONは未完成である場合がある |
たとえば、ブログ原稿を作っているとき、冒頭の説明が自分の意図と違いそうだと早めに気付けます。その場合は、生成を止められる画面であれば停止し、指示を修正してやり直せます。
ただし、停止したからといって、すでに行われた処理やAPI使用量が必ず取り消されるわけではありません。 停止操作の有無・課金条件はサービスごとに確認してください。
4. 文字は、裏側でどう届いているの?
文章を作るAIは、一般にトークンという小さな単位を扱いながら続きを生成します。トークンは日本語の「1文字」や「1単語」と必ず一致するわけではありません。
ストリーミングでは、その出力や処理の進行に応じて、文字の追加分(差分)やイベントをアプリへ順次送ります。
たとえば、開発用のAPIでは次のような順序になります。
- リクエストを送る。
- 応答を開始したという知らせを受け取る。
- 文章の追加分を受け取り、画面に書き足す。
- 次の追加分を受け取り、さらに書き足す。
- 完了の知らせを受け取り、最終結果として扱う。
この流れも仕組みを簡略化した例です。すべてのAPIが同じ名前・順序のイベントを返すという意味ではありません。
通信の仕組みとしてよく使われるのが、SSE(Server-Sent Events)です。これは、サーバーから利用者側へ、ひとつの接続で小さな知らせを順次届ける方法です。
ただし、ストリーミングがすべてSSEに限られるわけではありません。用途によってはWebSocketなど別の通信方法も使われます。たとえば双方向の音声会話は、通常の文字の逐次表示より複雑な仕組みです。
5. OpenAI・Claude・GeminiのAPIでは何が違う?
ここからは、自分のアプリやWebサイトにAIを組み込む人向けの補足です。ChatGPTなどのチャット画面を普通に使うだけなら、この節の設定を覚える必要はありません。
| サービス・API | ストリーミングの入口 | 代表的なイベント |
|---|---|---|
| OpenAI Responses API | リクエストでstream: true。HTTP・SSEに対応 | 文章の追加response.output_text.delta、完了response.completedなど |
| Anthropic Claude Messages API | stream: trueを指定してSSEで受け取る | message_start、content_block_delta、message_stopなど |
| Google Gemini Interactions API | stream: trueを指定してSSEで受け取る | interaction.created、step.delta、interaction.completedなど |
| GeminiのGenerateContent系API | streamGenerateContentなど、別のストリーミング用呼び出し | 応答のまとまりを順次受け取る |
この違いは、OpenAI・Anthropic・Googleの各公式ガイドに基づきます。「3社とも必ず同じAPI名で、同じ種類のイベントが返る」とは考えないでください。
受け取るのは、文章だけとは限らない
APIでは、生成される文字列のほかに、ツール呼び出し、処理の状態、使用量、エラーなどの情報が届く場合があります。
たとえばAnthropicのClaudeでは、content_block_deltaの中にテキストの追加や、ツールへ渡す引数の一部分などが含まれます。GoogleのInteractions APIでも、テキスト以外の処理ステップがイベントの対象です。
そのため、自分でアプリを作る場合は、「画面へ追記する文字」と「制御のためのイベント」を分ける必要があります。
Vercel AI SDKで実装を助けられる
Vercel AI SDKには、モデルの文章をストリーミングで扱うstreamTextという機能があります。違うAIサービスをアプリから利用するときの実装を助ける選択肢です。
ただし、SDKを使っても完了確認・エラー処理・途中の出力の扱いを考える必要はあります。 特に、ツールの実行、課金、ファイルへの保存などを行う場合は、途中のデータだけで確定処理を進めない設計が重要です。
6. 途中まで表示された回答は、完成品ではない
ストリーミングには、使いやすさと引き換えに注意点もあります。
途中の文章には、結論や条件がまだそろっていない
たとえばAIが次のように書き始めたとします。
この方法は使えます。ただし……
「使えます」だけを読んで実行すると危険です。 後続の文章で「未成年の場合は利用できない」「特別な許可が必要」といった条件が付くかもしれません。
重要な判断に使う文章は、回答が完成してから全文を確認しましょう。
通信が途中で止まる場合がある
通信が切れたり、サービス側でエラーが起きたりすると、途中までの文章だけが画面に残る可能性があります。完成したように見えても、完了の状態が確認できなければ未完了として扱うのが安全です。
自分でAIを組み込む場合は、最低限次を分けます。
- 進行中
受け取った部分を表示する。確定結果として保存しない。 - 正常完了
必要なデータがそろったことを確認し、完成として保存する。 - 中断・エラー
未完了と表示し、必要なら再試行する。
JSONやツール呼び出しの引数などは、途中で切れた状態では書式が壊れていることがあります。最後まで受け取り、構造や内容を検証してから次の処理へ渡すようにします。
また、OpenAIは、生成途中の文章では安全性や内容の確認が難しくなる場合があることを公式ガイドで説明しています。公開サービスを作るときは、途中の文章をそのまま不特定多数へ見せてよいかも考えましょう。
途中停止で必ず節約できるとは限らない
生成途中で停止できるサービスもありますが、停止操作がモデルやバックエンドの処理へいつ反映されるか、使用量や課金がどう扱われるかは、提供元の仕様によります。 「ストリーミングなら安い」「途中停止なら課金ゼロ」とは言い切れません。
7. 実際に確認してみよう
チャットサービスを普段使う人なら、難しい設定をしなくても、画面でストリーミングの特徴を観察できます。
- ChatGPTなどで、新しいチャットを開きます。
- 「日本の四季の特徴を、春・夏・秋・冬それぞれ3項目ずつ説明して」など、少し長い回答になる質問を送ります。
- 文字が少しずつ増えるか、まとめて現れるか観察します。
- 最後まで表示されるのを確認し、先頭から読み始められたか考えてみます。
- 対応している画面なら、もう一度長い質問を試し、生成を途中で停止する操作と、途中までの表示がどうなるかを確認しても構いません。
画面の見え方や停止ボタンの有無は、サービス・端末・モデルによって異なります。すべての回答が1文字ずつ増える保証はありません。 これは観察方法の紹介であり、実際にこの手順を実機で再現した結果ではありません。
自分のアプリを開発する場合は、「最初の文字が届くまで」と「完了するまで」を別々に計測すると、改善の目的が分かりやすくなります。完成までが長くても先に読めるようになったのか、そもそも生成処理自体が遅いのかを分けて判断できます。
よくある質問
やってみよう
判断クイズ
第1問
AIが長い説明を始め、最初の段落がすぐに画面へ表示されました。ストリーミングについて正しい理解はどれですか?
- A. 最初の文字が見えたので、AIの計算速度と全文の完成時間が必ず短くなった。
- B. 完成前の部分を順次受け取って読めるが、全文の完成が早くなるとは限らない。
- C. ストリーミングが有効なら、途中の文章はすべて最終確定している。
第2問
AIがJSONで注文データを送ってきます。ストリーミングの途中では、最後の } がまだ届いていません。どうすべきですか?
- A. 完了を待ち、JSONの形式・必要項目・値を検証してから注文処理へ渡す。
- B. 途中の文章でも必ず正しいので、すぐ決済処理を始める。
- C.
stream: trueを使った場合は、途中で書式が壊れることがないと考える。
第3問
サービス担当者が「OpenAI、Claude、Geminiは、stream: trueなら返るイベントが全部同じ」と説明しました。適切な判断は?
- A. 3社とも同じイベント名のため、完了処理は不要だと判断する。
- B. 文字だけ受け取れば、通信エラーやツール呼び出しは起きないと考える。
- C. 各社の公式APIガイドを確認し、文章の追加分・完了・エラーなどのイベントを適切に処理する。
あわせて読みたい
- 推論(Inference) —AIが質問に答えを出すときの処理
- レイテンシー(応答速度) — 最初の応答や全文が届くまでの待ち時間
- トークンって何? —AIが文章を処理・生成するときの小さな単位
締めに
まとめ
ストリーミングは、AIの回答を完成前から少しずつ届ける方法です。長い回答を読みながら待てるため、チャットなどで使いやすくなります。ただし、AIの生成速度や答えの正確さそのものを高める機能ではありません。
APIで利用する場合は、届いた文字を追加すること・完了を確認すること・エラーや中断を扱うことを分けて設計しましょう。初心者は、まずチャット画面で回答が順番に増える様子を観察するだけでも理解が進みます。