Implementação da tecnologia de streaming
Para ativar a saída de efeito de máquina de escrever semelhante ao ChatGPT:
- Solicitar configuração de parâmetrosAdicionar ao corpo da solicitação JSON
"stream": true
campo - Processamento no lado do clienteInterface de leitura de streaming usando EventSource ou Fetch API, código de amostra:
fetch('/v1/chat/completions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({stream: true, messages: [...]})
}).then(async res => {
const reader = res.body.getReader()
while(true) {
const {done, value} = await reader.read()
if(done) break
// 处理分块数据
}
}) - Otimização no lado do servidorEvite usar na inicialização
--log file
(que aumenta a latência de E/S)
Princípio técnico: O projeto usa o protocolo SSE (Server-Sent Events) internamente, e cada bloco de dados contémdata: [JSON]nn
para conteúdo incremental.
Essa resposta foi extraída do artigoGemini-CLI-2-API: convertendo a CLI do Gemini em um serviço de API nativa compatível com OpenAIO