Streaming
Specificandostreaming: true in SessionConfig, puoi ricevere le risposte di Copilot in streaming.
Sia la modalità stdio sia la TCP hanno di per sé un comportamento simile allo streaming. La differenza è che si iniziano a ricevere ASSISTANT_MESSAGE_DELTA.
- Per una visualizzazione fluida, stampa senza aggiungere newline.
- Non usare
spin()di Laravel Prompts contemporaneamente, perché rovina la visualizzazione.
Pattern d’uso concreti
Comando Artisan
Come sopra, stampi direttamente conecho o $this->output->write(). La visualizzazione è la stessa di quando usi Copilot CLI direttamente, quindi è facile da comprendere. Con stream() di Laravel Prompts puoi anche mostrare con un effetto fade-in.
Distribuzione su pagina web come Server-Sent Events (SSE)
Uso con response()->eventStream()
response()->eventStream() è stato aggiunto poco prima del rilascio di Laravel 12. Questo pacchetto supporta solo Laravel 12+, quindi puoi usarlo.
Uso con response()->stream()
Esempio di codice frontend
copilot.blade.php è pensato per una verifica rapida. In produzione, se usi React o Vue è consigliato usare i pacchetti npm ufficiali di Laravel @laravel/stream-react o @laravel/stream-vue.
Distribuzione via WebSocket
Combinando le funzionalità di notifica di Laravel, il broadcasting e Reverb, puoi distribuire idelta via WebSocket.
wire:stream di Livewire
Anche in Livewire puoi realizzare visualizzazione in streaming con la direttiva wire:stream.
Per le informazioni più recenti fai riferimento al repository GitHub.