From f382b2194d118036aa1aa6f2eb30d9f8b11a7632 Mon Sep 17 00:00:00 2001 From: kssdxw <37037978+kssdxw@users.noreply.github.com> Date: Tue, 4 Jul 2023 11:51:56 +0800 Subject: [PATCH] fix: openai data truncation (#112) --- client/src/service/utils/chat/index.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/client/src/service/utils/chat/index.ts b/client/src/service/utils/chat/index.ts index 385cfba10..9bf69cb87 100644 --- a/client/src/service/utils/chat/index.ts +++ b/client/src/service/utils/chat/index.ts @@ -186,16 +186,27 @@ export const V2_StreamResponse = async ({ }) => { let responseContent = ''; let error: any = null; - + let truncateData = ''; const clientRes = async (data: string) => { + //部分代理会导致流式传输时的数据被截断,不为json格式,这里做一个兼容 const { content = '' } = (() => { try { + if (truncateData) { + try { + //判断是否为json,如果是的话直接跳过后续拼装操作,注意极端情况下可能出现截断成3截以上情况也可以兼容 + JSON.parse(data); + } catch (e) { + data = truncateData + data; + } + truncateData = ''; + } const json = JSON.parse(data); const content: string = json?.choices?.[0].delta.content || ''; error = json.error; responseContent += content; return { content }; } catch (error) { + truncateData = data; return {}; } })();