Sistemas em produção
12 minLição 13 de 14
Respostas em streaming
Entregue performance percebida mais rápida com streaming
Objetivos de aprendizagem
- •Entender por que streaming melhora a UX
- •Aprender a implementar streaming em diferentes frameworks
- •Lidar com casos extremos de streaming
Por que fazer streaming?
- Usuário espera a resposta inteira
- Respostas longas = espera longa
- Sem feedback durante a geração
- Primeiros tokens aparecem em ~200 ms
- Resposta é construída em tempo real
- Melhor performance percebida
Para uma resposta de 500 tokens, o streaming pode fazer a experiência parecer 10x mais rápida.
Implementando streaming
// Usando AI SDK
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
const result = streamText({
model: openai('gpt-4'),
prompt: 'Escreva uma história curta',
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}Server-Sent Events (SSE) ou WebSockets entregam os chunks ao navegador.
Considerações de streaming
Tratamento de erros
- Quedas de conexão
- Rate limits
- Erros do modelo
Parsing de saída estruturada
Se estiver fazendo streaming de JSON, espere o objeto completo antes de fazer parse.
UI/UX
- Mostre indicador de digitação durante a geração
- Trate atualizações rápidas de conteúdo de forma eficiente
- Considere comportamento de scroll suave
Erros comuns
×Não tratar erros de conexão — streams podem falhar no meio da resposta
×Fazer parse de JSON parcial — espere estruturas completas
×Ignorar rate limits — streaming não evita rate limiting
×Sem estados de carregamento — usuários precisam de feedback enquanto esperam o primeiro token
Principais pontos
+Streaming melhora muito a performance percebida
+Os primeiros tokens aparecem em ~200 ms independente do tamanho total
+Trate erros com cuidado — streams podem falhar no meio
+Buffer saída estruturada até estar completa