使用 firebase 云函数作为后端时,有没有办法流式传输 OpenAI (chatGPT) 响应?

Mig*_*Dey 5 firebase google-cloud-functions openai-api chatgpt-api

我目前正在使用 OpenAI 的 ChatGPT 和 Firebase Cloud Functions 作为后端构建一个聊天机器人。我想创建一种实时聊天体验,其中来自 ChatGPT 的响应在生成时会流回客户端。然而,我在实现这一目标方面面临一些挑战。

我已成功将 ChatGPT 与 Firebase Cloud Functions 集成,并且可以进行 API 调用来生成响应。但问题是,只有在生成整个响应时才会返回响应,从而导致用户收到任何输出之前出现延迟。

有没有办法在 ChatGPT 生成响应时实时传输响应,而不是等待完整响应?我希望用户尽快看到每个部分响应。

这是我当前代码的简化版本:

// Firebase Cloud Functions endpoint
exports.chat = functions.https.onRequest(async (req, res) => {
  const { message } = req.body;

  // Make API call to OpenAI ChatGPT
  const response = await openai.complete({
    model: 'gpt-3.5-turbo',
    stream: true,
    messages: [{ role: 'system', content: 'You are a helpful assistant.' }, { role: 'user', content: message }],
  });

  // Process the response and send it back to the client
  const output = response.data.choices[0].message.content;
  res.send({ message: output });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法修改此代码或使用不同的方法来实现所需的 ChatGPT 响应实时流?

任何建议或见解将不胜感激。谢谢你!