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;