From fc7edcb54f8fffafabc98e067bf92aac9a6032c4 Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Thu, 6 Apr 2023 22:24:23 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20log=E5=92=8C=E5=90=91=E9=87=8F=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/api/chat/vectorGpt.ts | 47 +++---------------- .../detail/components/SelectFileModal.tsx | 3 -- src/service/events/pushBill.ts | 5 -- src/service/response.ts | 6 +-- 4 files changed, 8 insertions(+), 53 deletions(-) diff --git a/src/pages/api/chat/vectorGpt.ts b/src/pages/api/chat/vectorGpt.ts index 5c019ca2d..e9a5558a3 100644 --- a/src/pages/api/chat/vectorGpt.ts +++ b/src/pages/api/chat/vectorGpt.ts @@ -14,6 +14,7 @@ import { connectRedis } from '@/service/redis'; import { VecModelDataPrefix } from '@/constants/redis'; import { vectorToBuffer } from '@/utils/tools'; import { openaiCreateEmbedding } from '@/service/utils/openai'; +import { gpt35StreamResponse } from '@/service/utils/openai'; /* 发送提示词 */ export default async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -152,49 +153,13 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) console.log('api response time:', `${(Date.now() - startTime) / 1000}s`); - // 创建响应流 - res.setHeader('Content-Type', 'text/event-stream;charset-utf-8'); - res.setHeader('Access-Control-Allow-Origin', '*'); - res.setHeader('X-Accel-Buffering', 'no'); - res.setHeader('Cache-Control', 'no-cache, no-transform'); step = 1; - let responseContent = ''; - stream.pipe(res); - - const onParse = async (event: ParsedEvent | ReconnectInterval) => { - if (event.type !== 'event') return; - const data = event.data; - if (data === '[DONE]') return; - try { - const json = JSON.parse(data); - const content: string = json?.choices?.[0].delta.content || ''; - if (!content || (responseContent === '' && content === '\n')) return; - - responseContent += content; - // console.log('content:', content) - !stream.destroyed && stream.push(content.replace(/\n/g, '
')); - } catch (error) { - error; - } - }; - - const decoder = new TextDecoder(); - try { - for await (const chunk of chatResponse.data as any) { - if (stream.destroyed) { - // 流被中断了,直接忽略后面的内容 - break; - } - const parser = createParser(onParse); - parser.feed(decoder.decode(chunk)); - } - } catch (error) { - console.log('pipe error', error); - } - // close stream - !stream.destroyed && stream.push(null); - stream.destroy(); + const { responseContent } = await gpt35StreamResponse({ + res, + stream, + chatResponse + }); const promptsContent = formatPrompts.map((item) => item.content).join(''); // 只有使用平台的 key 才计费 diff --git a/src/pages/model/detail/components/SelectFileModal.tsx b/src/pages/model/detail/components/SelectFileModal.tsx index 86c1b2ebc..7a8188779 100644 --- a/src/pages/model/detail/components/SelectFileModal.tsx +++ b/src/pages/model/detail/components/SelectFileModal.tsx @@ -14,7 +14,6 @@ import { } from '@chakra-ui/react'; import { useToast } from '@/hooks/useToast'; import { useSelectFile } from '@/hooks/useSelectFile'; -import { customAlphabet } from 'nanoid'; import { encode } from 'gpt-token-utils'; import { useConfirm } from '@/hooks/useConfirm'; import { readTxtContent, readPdfContent, readDocContent } from '@/utils/tools'; @@ -22,8 +21,6 @@ import { useMutation } from '@tanstack/react-query'; import { postModelDataSplitData } from '@/api/model'; import { formatPrice } from '@/utils/user'; -const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz1234567890', 12); - const fileExtension = '.txt,.doc,.docx,.pdf,.md'; const SelectFileModal = ({ diff --git a/src/service/events/pushBill.ts b/src/service/events/pushBill.ts index b005caccf..ec2bf3f01 100644 --- a/src/service/events/pushBill.ts +++ b/src/service/events/pushBill.ts @@ -34,7 +34,6 @@ export const pushChatBill = async ({ // 计算价格 const unitPrice = modelItem?.price || 5; const price = unitPrice * tokens; - console.log(`unit price: ${unitPrice}, price: ${formatPrice(price)}元`); try { // 插入 Bill 记录 @@ -91,8 +90,6 @@ export const pushSplitDataBill = async ({ // 计算价格 const price = unitPrice * tokenLen; - console.log(`price: ${formatPrice(price)}元`); - // 插入 Bill 记录 const res = await Bill.create({ userId, @@ -143,8 +140,6 @@ export const pushGenerateVectorBill = async ({ let price = unitPrice * tokenLen; price = price > 1 ? price : 1; - console.log(`price: ${formatPrice(price)}元`); - // 插入 Bill 记录 const res = await Bill.create({ userId, diff --git a/src/service/response.ts b/src/service/response.ts index 844132587..23f083ea4 100644 --- a/src/service/response.ts +++ b/src/service/response.ts @@ -30,13 +30,11 @@ export const jsonRes = ( } else if (openaiError[error?.response?.statusText]) { msg = openaiError[error.response.statusText]; } - console.log('error->'); - console.log('code:', error.code); - console.log('msg:', msg); + console.log(`error-> msg:${msg}`); // request 时候报错 if (error?.response) { console.log('statusText:', error?.response?.statusText); - console.log('type:', error?.response?.data?.error?.type); + console.log('error data:', error?.response?.data); } }