Skip to main content

Streaming

在 SessionConfig 中指定 streaming: true 後,可以以 streaming 方式接收 Copilot 的回應。 原本無論在 stdio 模式或 TCP 模式下都類似 streaming 的動作。差異在於會接收到 ASSISTANT_MESSAGE_DELTA
  • 為了流暢顯示,不要新增換行符號,直接顯示。
  • Laravel Prompts 的 spin() 會造成顯示錯亂,不要一起使用。

具體使用模式

Artisan 指令

如上以 echo$this->output->write() 直接輸出。與直接使用 Copilot CLI 的顯示相同,容易理解。使用 Laravel Prompts 的 stream() 可以帶淡入效果顯示。

於網頁以 Server-Sent Events (SSE) 傳送

使用 response()->eventStream() 的寫法

response()->eventStream() 是在 Laravel 12 發布前不久加入的。此套件只支援 Laravel 12 以上版本,因此可以使用。

使用 response()->stream() 的寫法

前端範例程式碼

copilot.blade.php 僅供簡易顯示驗證。實際使用時若採用 React 或 Vue,建議使用 Laravel 官方的 npm 套件,例如 @laravel/stream-react@laravel/stream-vue

以 WebSocket 傳送

可組合 Laravel 的 Notification、Broadcast 與 Reverb,將 delta 透過 WebSocket 傳送。

Livewire 的 wire:stream

Livewire 也可透過 wire:stream 指令實現 streaming 顯示。
最新資訊請參閱 GitHub 儲存庫
最後修改於 2026年8月2日