From 30678d8ebf8c74443ba530f3e08bd00a3f922c0e Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Fri, 24 Mar 2023 14:35:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20destroy=E5=90=8E=E4=BB=8D=E6=9C=89push?= =?UTF-8?q?=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/api/chat/chatGpt.ts | 7 ++++--- src/service/events/bill.ts | 6 ------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/pages/api/chat/chatGpt.ts b/src/pages/api/chat/chatGpt.ts index 0e89a226e..948fd00b3 100644 --- a/src/pages/api/chat/chatGpt.ts +++ b/src/pages/api/chat/chatGpt.ts @@ -121,7 +121,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) if (!content) return; responseContent += content; // console.log('content:', content) - stream.push(content.replace(/\n/g, '
')); + !stream.destroyed && stream.push(content.replace(/\n/g, '
')); } catch (error) { error; } @@ -140,7 +140,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) } catch (error) { console.log('pipe error', error); } - stream.push(null); + // close stream + stream.destroy(); const promptsLen = formatPrompts.reduce((sum, item) => sum + item.content.length, 0); console.log(`responseLen: ${responseContent.length}`, `promptLen: ${promptsLen}`); @@ -154,8 +155,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) }); } catch (err: any) { if (step === 1) { - console.log('error,结束'); // 直接结束流 + console.log('error,结束'); stream.destroy(); } else { res.status(500); diff --git a/src/service/events/bill.ts b/src/service/events/bill.ts index 18cff393b..2138fd5dd 100644 --- a/src/service/events/bill.ts +++ b/src/service/events/bill.ts @@ -14,15 +14,9 @@ export const pushBill = async ({ }) => { await connectToDatabase(); - const modelItem = modelList.find((item) => item.model === modelName); - - if (!modelItem) return; - let billId; try { - await connectToDatabase(); - const modelItem = modelList.find((item) => item.model === modelName); if (!modelItem) return;