O papel do parâmetro “stream”
Para ativar o efeito de streaming, é necessário definir o parâmetro “stream” como “true”. No entanto, ao usar a característica de API do Flutter Flow, essa configuração retorna dados nulos. Isso ocorre porque a API do ChatGPT retorna uma corrente de respostas usando Eventos de Enviados pelo Servidor (SSE), que é um modo de obter atualizações em tempo real do servidor para o cliente. A resposta não é um único objeto JSON, mas sim múltiplas respostas embrulhadas em um wrapper “data”.
Como lidar com a resposta da API
Para lidar com a resposta da API, é necessário criar uma classe Dart para mapear a estrutura JSON. Além disso, é importante preparar o pedido, incluindo a definição da URL, cabeçalhos e corpo, e enviar o pedido com o método POST. Em seguida, é preciso ouvir eventos e decodificar os dados de resposta, convertendo bytes brutos em uma string UTF-8.
Passos para trabalhar com dados de streaming
Para trabalhar com dados de streaming em um aplicativo ChatGPT em Flutter Flow, são necessários os seguintes passos:
1. Adicione uma mensagem de chat Dummy ao histórico de conversa.
2. Analise os dados JSON recebidos da API e converta-os em um objeto Dart.
3. Realize verificações de nulos para garantir a presença de dados “choices”, “delta” e “content”.
4. Atualize o histórico de conversa com o conteúdo extraído da resposta.
5. Chame a ação de callback para atualizar o estado da UI e rolar até o final da lista.
6. Converta a lista de histórico de conversa em um mapa JSON e passe-o para a ação da API.
Essa solução é um workaround temporário até que o Flutter Flow native suporte dados de streaming.