Skip to main content

ストリーミング

SessionConfigで streaming: trueを指定すると、Copilotからの応答をストリーミングで受け取れます。 元からstdioモードでもTCPモードでもストリーミングのような動作です。違いはASSISTANT_MESSAGE_DELTAを受信するようになることです。
  • 流暢な表示のためには改行を追加せずそのまま表示します。
  • Laravel Promptsのspin()は表示が崩れるので一緒に使いません。

具体的な使用パターン

Artisanコマンド

上記のようにechoもしくは$this->output->write()で直接出力します。Copilot CLIを直接使った場合と同じ表示なので理解しやすいです。Laravel Promptsのstream()を使うとフェードイン効果付きでの表示もできます。

WebページでServer-Sent Events (SSE)として配信

response()->eventStream()を使う書き方

response()->eventStream()が追加されたのはLaravel12リリース直前くらいの時期です。このパッケージはLaravel12以上のみ対応なので使用可能です。

response()->stream()を使う書き方

フロントエンド側のコード例

copilot.blade.phpは簡易的な表示確認用です。本番用にはReactかVueを使っているならLaravel公式のnpmパッケージを使うのが推奨です。@laravel/stream-react@laravel/stream-vue

WebSocketでの配信

Laravelの通知機能、ブロードキャスト機能、Reverbを組み合わせてdeltaをWebSocketで配信することも可能です。

Livewireのwire:stream

Livewireでもwire:streamディレクティブを使ってストリーミング表示が可能です。
最新情報は GitHub リポジトリ を参照してください。
最終更新日 2026年5月4日