Streaming
Receba a saída parcial à medida que ela é gerada.
O streaming permite receber conteúdo enquanto o modelo o gera. É útil para interfaces de chat e respostas longas. Antes de ativá-lo, confirme que o modelo e a interface selecionados oferecem suporte.
Ative o streaming
Defina o seguinte campo em uma solicitação de chat:
{
"stream": true
}Exemplo completo de solicitação:
curl --no-buffer --silent --show-error \
"https://api.vergora.ai/v1/chat/completions" \
-H "Authorization: Bearer ${VERGORA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_STREAMING_MODEL_ID",
"messages": [
{
"role": "user",
"content": "Explique o streaming em três frases."
}
],
"stream": true
}'Leia os eventos
Uma resposta SSE compatível pode conter eventos como:
data: {"choices":[{"delta":{"content":"Olá"},"finish_reason":null}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]Considere a resposta real da interface como referência definitiva para a estrutura dos eventos e os sinais de conclusão.
Processe o fluxo corretamente
- Leia os dados conforme os limites de cada evento SSE.
- Não trate um fragmento de rede como um valor JSON completo.
- Combine os incrementos de texto em ordem.
- Trate incrementos vazios, eventos de conclusão e erros dentro do fluxo.
- Marque a resposta como concluída somente após receber o sinal de conclusão esperado.
Interrupções, novas tentativas e custo
Após uma interrupção de rede ou timeout do cliente, marque o conteúdo recebido como incompleto. Reenviar normalmente cria outra solicitação e pode gerar outra cobrança. Verifique a solicitação original em Logs de API antes de tentar novamente.
A ausência de campos de uso no fluxo não significa que não houve uso. Consulte o registro da solicitação para conhecer o uso e o custo finais.