gpt4 book ai didi

node.js - 如何在 Vercel Serverless 函数中进行流式传输?它在本地工作,但部署后就不行了

转载 作者:行者123 更新时间:2023-12-02 05:48:27 25 4
gpt4 key购买 nike

我正在测试一些 ChatGPT 功能,并了解如何流式传输响应,就像实时键入响应一样。

虽然我能够在本地正确重现此内容,但由于某种原因,当我部署此内容时,只有在加载完整消息后才会显示响应。

维塞尔documentation声明如下:

Vercel supports streaming for Serverless Functions, Edge Functions, and React Server Components in Next.js projects.

我只能找到有关如何执行此操作的文档 stream for Edge Functions ,不适用于无服务器。

在这里您可以比较它在本地的工作方式,但不适用于部署: enter image description here

这是存储库:https://github.com/andna/errorsrepo这是特定的处理程序:

const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
apiKey: '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',
//this key was deleted after video recording
//replace with your own free API KEY obtained here: https://platform.openai.com/account/api-keys
});
const openai = new OpenAIApi(configuration);

export default async function handler(req, res) {

try {
const completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
stream: true,
messages: [
{ role: "system", content: "You are an AI." },
{ role: "user", content: "how are you?" }],
}, { responseType: 'stream' });

completion.data.on('data', data => {
const lines = data.toString().split('\n').filter(line => line.trim() !== '');

res.write("<!DOCTYPE html><html><body>");

for (const line of lines) {
const message = line.replace(/^data: /, '');
if (message === '[DONE]') {
res.end();
return; // Stream finished
}
try {
const parsed = JSON.parse(message);
const content = parsed.choices[0].delta.content;
if(content){
res.write(content);
}
;
} catch(error) {
console.error('Could not JSON parse stream message', message, error);
}
}


});
} catch (error) {
console.error('An error occurred during OpenAI request', error);
}



}

有什么帮助可以让它在产品中也工作吗?

最佳答案

正如 @AcclaimHosting 所指出的,存在很多差异。

最终使用 Edge Functions 而不是无服务器来遵循此示例: https://vercel.com/blog/gpt-3-app-next-js-vercel-edge-functions#the-frontend

关于node.js - 如何在 Vercel Serverless 函数中进行流式传输?它在本地工作,但部署后就不行了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75717246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com