mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-20 18:54:09 +00:00
fix: openai data truncation (#112)
This commit is contained in:
@@ -186,16 +186,27 @@ export const V2_StreamResponse = async ({
|
|||||||
}) => {
|
}) => {
|
||||||
let responseContent = '';
|
let responseContent = '';
|
||||||
let error: any = null;
|
let error: any = null;
|
||||||
|
let truncateData = '';
|
||||||
const clientRes = async (data: string) => {
|
const clientRes = async (data: string) => {
|
||||||
|
//部分代理会导致流式传输时的数据被截断,不为json格式,这里做一个兼容
|
||||||
const { content = '' } = (() => {
|
const { content = '' } = (() => {
|
||||||
try {
|
try {
|
||||||
|
if (truncateData) {
|
||||||
|
try {
|
||||||
|
//判断是否为json,如果是的话直接跳过后续拼装操作,注意极端情况下可能出现截断成3截以上情况也可以兼容
|
||||||
|
JSON.parse(data);
|
||||||
|
} catch (e) {
|
||||||
|
data = truncateData + data;
|
||||||
|
}
|
||||||
|
truncateData = '';
|
||||||
|
}
|
||||||
const json = JSON.parse(data);
|
const json = JSON.parse(data);
|
||||||
const content: string = json?.choices?.[0].delta.content || '';
|
const content: string = json?.choices?.[0].delta.content || '';
|
||||||
error = json.error;
|
error = json.error;
|
||||||
responseContent += content;
|
responseContent += content;
|
||||||
return { content };
|
return { content };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
truncateData = data;
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
Reference in New Issue
Block a user