Streaming com IA
Streaming permite exibir tokens conforme a resposta é gerada. Esse fluxo melhora a percepção de velocidade em chats, copilotos, assistentes internos e interfaces longas.
Quando usar streaming
Use streaming quando:
- a resposta pode ser longa
- o usuário está olhando para uma interface interativa
- você quer mostrar progresso antes da resposta final
- a aplicação precisa reduzir sensação de espera
Para tarefas de backend, relatórios assíncronos ou automações sem interface, uma chamada sem streaming costuma ser mais simples.
Permissões
O streaming usa a mesma credencial de inferência da IA que uma chamada normal. Os scopes ai_key.* e ai_usage.read administram a chave e o consumo na API da Zenifra; não são necessários como headers da chamada OpenAI-compatible.
Exemplo em Node.js
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://ai.zenifra.com/v1',
apiKey: process.env.ZENIFRA_AI_API_KEY,
});
const stream = await client.chat.completions.create({
model: 'zenifra/qwen3.8-flash',
stream: true,
messages: [
{
role: 'user',
content: 'Explique o que é deploy contínuo em cinco frases.',
},
],
});
for await (const chunk of stream) {
const token = chunk.choices[0]?.delta?.content;
if (token) process.stdout.write(token);
}Exemplo em curl
curl https://ai.zenifra.com/v1/chat/completions \
-H "Authorization: Bearer $ZENIFRA_AI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "zenifra/qwen3.8-flash",
"stream": true,
"messages": [
{ "role": "user", "content": "Crie uma checklist curta de deploy." }
]
}'Cuidados em produção
- trate queda de conexão no cliente
- mostre erro claro se a chave estiver inválida, sem crédito na organização ou com a quota atingida
- não registre prompts sensíveis sem necessidade
- limite concorrência para evitar picos de custo
- acompanhe tokens, custo e modelos usados no console
Próximos passos
FAQ
Streaming muda a cobrança?
O consumo continua sendo baseado em tokens. A diferença é a forma como a resposta chega ao cliente.
Posso usar streaming em backend?
Sim, mas ele é mais útil quando existe uma interface exibindo a resposta em tempo real.
O que fazer em erro no meio do stream?
Finalize a resposta parcial, mostre uma mensagem clara e permita nova tentativa com backoff.
Última atualização em