mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 21:13:50 +00:00
perf: logs
This commit is contained in:
@@ -34,7 +34,7 @@ function responseSuccess(response: AxiosResponse<ResponseDataType>) {
|
||||
*/
|
||||
function checkRes(data: ResponseDataType) {
|
||||
if (data === undefined) {
|
||||
console.error(data, 'data is empty');
|
||||
console.log('error->', data, 'data is empty');
|
||||
return Promise.reject('服务器异常');
|
||||
} else if (data.code < 200 || data.code >= 400) {
|
||||
return Promise.reject(data.message);
|
||||
@@ -46,7 +46,7 @@ function checkRes(data: ResponseDataType) {
|
||||
* 响应错误
|
||||
*/
|
||||
function responseError(err: any) {
|
||||
console.error('请求错误', err);
|
||||
console.log('error->', '请求错误', err);
|
||||
|
||||
if (!err) {
|
||||
return Promise.reject({ message: '未知错误' });
|
||||
|
@@ -39,7 +39,7 @@ const Auth = ({ children }: { children: JSX.Element }) => {
|
||||
}
|
||||
},
|
||||
onError(error) {
|
||||
console.error(error);
|
||||
console.log('error->', error);
|
||||
router.push('/login');
|
||||
toast();
|
||||
},
|
||||
|
@@ -6,6 +6,7 @@ import { getOpenAIApi, authChat } from '@/service/utils/chat';
|
||||
import { openaiProxy } from '@/service/utils/tools';
|
||||
import { ChatCompletionRequestMessage, ChatCompletionRequestMessageRoleEnum } from 'openai';
|
||||
import { ChatItemType } from '@/types/chat';
|
||||
import { openaiError } from '@/service/errorCode';
|
||||
|
||||
/* 发送提示词 */
|
||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
@@ -74,7 +75,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
httpsAgent: openaiProxy?.httpsAgent
|
||||
}
|
||||
);
|
||||
console.log('response success');
|
||||
console.log(
|
||||
formatPrompts.reduce((sum, item) => sum + item.content.length, 0),
|
||||
'response success'
|
||||
);
|
||||
|
||||
let AIResponse = '';
|
||||
|
||||
@@ -95,54 +99,44 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
updateTime: Date.now()
|
||||
});
|
||||
res.write('event: done\ndata: \n\n');
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const json = JSON.parse(data);
|
||||
const content: string = json.choices[0].delta.content || '\n';
|
||||
const content: string = json?.choices?.[0].delta.content || '\n';
|
||||
// console.log('content:', content)
|
||||
res.write(`event: responseData\ndata: ${content.replace(/\n/g, '<br/>')}\n\n`);
|
||||
AIResponse += content;
|
||||
} catch (e) {
|
||||
res.end();
|
||||
} catch (error) {
|
||||
error;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const parser = createParser(onParse);
|
||||
try {
|
||||
for await (const chunk of chatResponse.data as any) {
|
||||
const parser = createParser(onParse);
|
||||
parser.feed(decoder.decode(chunk));
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error, '====');
|
||||
throw new Error('错误了');
|
||||
}
|
||||
} catch (err: any) {
|
||||
let errorText = err;
|
||||
// console.log('error->', err?.response, '===');
|
||||
let errorText = 'OpenAI 服务器访问超时';
|
||||
if (err.code === 'ECONNRESET') {
|
||||
errorText = '服务器代理出错';
|
||||
} else {
|
||||
switch (err?.response?.data?.error?.code) {
|
||||
case 'invalid_api_key':
|
||||
errorText = 'API-KEY不合法';
|
||||
break;
|
||||
case 'context_length_exceeded':
|
||||
errorText = '内容超长了,请重置对话';
|
||||
break;
|
||||
case 'rate_limit_reached':
|
||||
errorText = '同时访问用户过多,请稍后再试';
|
||||
break;
|
||||
case null:
|
||||
errorText = 'OpenAI 服务器访问超时';
|
||||
break;
|
||||
default:
|
||||
errorText = '服务器异常';
|
||||
} else if (err?.response?.statusText && openaiError[err.response.statusText]) {
|
||||
errorText = openaiError[err.response.statusText];
|
||||
}
|
||||
}
|
||||
console.error(errorText);
|
||||
console.log('error->', errorText);
|
||||
res.write(`event: serviceError\ndata: ${errorText}\n\n`);
|
||||
res.end();
|
||||
// 删除最一条数据库记录, 也就是预发送的那一条
|
||||
await ChatWindow.findByIdAndUpdate(windowId, {
|
||||
$pop: { content: 1 },
|
||||
updateTime: Date.now()
|
||||
});
|
||||
res.end();
|
||||
}
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
const { authorization } = req.headers;
|
||||
|
||||
if (!authorization) {
|
||||
throw new Error('缺少参数');
|
||||
throw new Error('缺少登录凭证');
|
||||
}
|
||||
|
||||
const userId = await authToken(authorization);
|
||||
|
@@ -165,13 +165,13 @@ const Chat = () => {
|
||||
event.addEventListener('serviceError', ({ data: err }) => {
|
||||
clearTimeout(timer);
|
||||
event.close();
|
||||
console.error(err, '===');
|
||||
console.log('error->', err, '===');
|
||||
reject(typeof err === 'string' ? err : '对话出现不知名错误~');
|
||||
});
|
||||
event.onerror = (err) => {
|
||||
clearTimeout(timer);
|
||||
event.close();
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
reject(typeof err === 'string' ? err : '对话出现不知名错误~');
|
||||
};
|
||||
});
|
||||
|
@@ -34,7 +34,7 @@ const ModelEditForm = ({ model }: { model?: ModelType }) => {
|
||||
status: 'success'
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
toast({
|
||||
title: err as string,
|
||||
status: 'success'
|
||||
|
@@ -29,7 +29,7 @@ const Training = ({ model }: { model: ModelType }) => {
|
||||
const res = await getModelTrainings(id);
|
||||
setRecords(res);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.log('error->', error);
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
@@ -42,7 +42,7 @@ const ModelDetail = () => {
|
||||
res.security.expiredTime /= 60 * 60 * 1000;
|
||||
setModel(res);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
}
|
||||
setLoading(false);
|
||||
}, [modelId, setLoading]);
|
||||
@@ -63,7 +63,7 @@ const ModelDetail = () => {
|
||||
});
|
||||
router.replace('/model/list');
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
}
|
||||
setLoading(false);
|
||||
}, [setLoading, model, router, toast]);
|
||||
@@ -77,7 +77,7 @@ const ModelDetail = () => {
|
||||
|
||||
router.push(`/chat?chatId=${chatId}`);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
}
|
||||
setLoading(false);
|
||||
}, [setLoading, model, router]);
|
||||
@@ -105,7 +105,7 @@ const ModelDetail = () => {
|
||||
title: typeof err === 'string' ? err : '文件格式错误',
|
||||
status: 'error'
|
||||
});
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
}
|
||||
setLoading(false);
|
||||
},
|
||||
@@ -121,7 +121,7 @@ const ModelDetail = () => {
|
||||
await putModelTrainingStatus(model._id);
|
||||
loadModel();
|
||||
} catch (error: any) {
|
||||
console.error(error);
|
||||
console.log('error->', error);
|
||||
toast({
|
||||
title: error.message || '更新失败',
|
||||
status: 'error'
|
||||
|
@@ -46,7 +46,7 @@ const ModelList = () => {
|
||||
shallow: true
|
||||
});
|
||||
} catch (err: any) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
toast({
|
||||
title: err.message || '出现一些异常',
|
||||
status: 'error'
|
||||
|
@@ -1,3 +1,6 @@
|
||||
export const openaiError: Record<string, string> = {
|
||||
context_length_exceeded: '内容超出长度'
|
||||
context_length_exceeded: '内容超长了,请重置对话',
|
||||
Unauthorized: 'API-KEY 不合法',
|
||||
rate_limit_reached: '同时访问用户过多,请稍后再试',
|
||||
'Bad Request': '内容太多了~'
|
||||
};
|
||||
|
@@ -12,12 +12,14 @@ export async function connectToDatabase(): Promise<void> {
|
||||
console.log('connect mongo');
|
||||
try {
|
||||
global.mongodb = await mongoose.connect(process.env.MONGODB_URI as string, {
|
||||
bufferCommands: true,
|
||||
dbName: 'doc_gpt',
|
||||
maxPoolSize: 10,
|
||||
minPoolSize: 1
|
||||
maxPoolSize: 5,
|
||||
minPoolSize: 1,
|
||||
maxConnecting: 5
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('mongo connect error');
|
||||
console.log('error->', 'mongo connect error');
|
||||
global.mongodb = null;
|
||||
}
|
||||
}
|
||||
|
@@ -27,8 +27,8 @@ export const jsonRes = (
|
||||
msg = openaiError[error?.response?.data?.message];
|
||||
}
|
||||
|
||||
console.error(error);
|
||||
console.error(msg);
|
||||
console.log('error->', error);
|
||||
console.log('error->', msg);
|
||||
}
|
||||
|
||||
res.json({
|
||||
|
@@ -34,7 +34,7 @@ export const sendCode = (email: string, code: string, type: `${EmailTypeEnum}`)
|
||||
};
|
||||
mailTransport.sendMail(options, function (err, msg) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
reject('邮箱异常');
|
||||
} else {
|
||||
resolve('');
|
||||
@@ -53,7 +53,7 @@ export const sendTrainSucceed = (email: string, modelName: string) => {
|
||||
};
|
||||
mailTransport.sendMail(options, function (err, msg) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
console.log('error->', err);
|
||||
reject('邮箱异常');
|
||||
} else {
|
||||
resolve('');
|
||||
|
@@ -21,7 +21,7 @@ export const useCopyData = () => {
|
||||
duration: 1000
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.log('error->', error);
|
||||
toast({
|
||||
title: '复制失败',
|
||||
status: 'error'
|
||||
|
Reference in New Issue
Block a user