mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 13:03:50 +00:00
error track
This commit is contained in:
@@ -12,6 +12,7 @@ import { clientInitData, feConfigs } from '@/store/static';
|
|||||||
import { appWithTranslation, useTranslation } from 'next-i18next';
|
import { appWithTranslation, useTranslation } from 'next-i18next';
|
||||||
import { getLangStore, setLangStore } from '@/utils/i18n';
|
import { getLangStore, setLangStore } from '@/utils/i18n';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
|
import { useGlobalStore } from '@/store/global';
|
||||||
|
|
||||||
import 'nprogress/nprogress.css';
|
import 'nprogress/nprogress.css';
|
||||||
import '@/styles/reset.scss';
|
import '@/styles/reset.scss';
|
||||||
@@ -37,6 +38,7 @@ function App({ Component, pageProps }: AppProps) {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { hiId } = router.query as { hiId?: string };
|
const { hiId } = router.query as { hiId?: string };
|
||||||
const { i18n } = useTranslation();
|
const { i18n } = useTranslation();
|
||||||
|
const { setLastRoute } = useGlobalStore();
|
||||||
|
|
||||||
const [scripts, setScripts] = useState<FeConfigsType['scripts']>([]);
|
const [scripts, setScripts] = useState<FeConfigsType['scripts']>([]);
|
||||||
const [googleClientVerKey, setGoogleVerKey] = useState<string>();
|
const [googleClientVerKey, setGoogleVerKey] = useState<string>();
|
||||||
@@ -75,6 +77,10 @@ function App({ Component, pageProps }: AppProps) {
|
|||||||
const lang = getLangStore() || 'zh';
|
const lang = getLangStore() || 'zh';
|
||||||
i18n?.changeLanguage?.(lang);
|
i18n?.changeLanguage?.(lang);
|
||||||
setLangStore(lang);
|
setLangStore(lang);
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
setLastRoute(router.asPath);
|
||||||
|
};
|
||||||
}, [router.asPath]);
|
}, [router.asPath]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@@ -1,14 +1,22 @@
|
|||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import { serviceSideProps } from '@/utils/i18n';
|
import { serviceSideProps } from '@/utils/i18n';
|
||||||
|
import { useGlobalStore } from '@/store/global';
|
||||||
|
import { addLog } from '@/service/utils/tools';
|
||||||
|
import { getErrText } from '@/utils/tools';
|
||||||
|
|
||||||
function Error() {
|
function Error() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const { lastRoute } = useGlobalStore();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
window.umami?.track('pageError', {
|
window.umami?.track('pageError', {
|
||||||
userAgent: navigator.userAgent,
|
userAgent: navigator.userAgent,
|
||||||
platform: navigator.platform,
|
platform: navigator.platform,
|
||||||
appName: navigator.appName
|
appName: navigator.appName,
|
||||||
|
lastRoute,
|
||||||
|
route: router.asPath
|
||||||
});
|
});
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
@@ -26,7 +34,9 @@ function Error() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps(context: any) {
|
export async function getServerSideProps(context: any) {
|
||||||
console.log(context);
|
console.log('[render error]: ', context);
|
||||||
|
|
||||||
|
addLog.error(getErrText(context?.res));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
props: { ...(await serviceSideProps(context)) }
|
props: { ...(await serviceSideProps(context)) }
|
||||||
|
@@ -4,6 +4,7 @@ import { TrainingData } from '../models/trainingData';
|
|||||||
import { ERROR_ENUM } from '../errorCode';
|
import { ERROR_ENUM } from '../errorCode';
|
||||||
import { TrainingModeEnum } from '@/constants/plugin';
|
import { TrainingModeEnum } from '@/constants/plugin';
|
||||||
import { sendInform } from '@/pages/api/user/inform/send';
|
import { sendInform } from '@/pages/api/user/inform/send';
|
||||||
|
import { addLog } from '../utils/tools';
|
||||||
|
|
||||||
const reduceQueue = () => {
|
const reduceQueue = () => {
|
||||||
global.vectorQueueLen = global.vectorQueueLen > 0 ? global.vectorQueueLen - 1 : 0;
|
global.vectorQueueLen = global.vectorQueueLen > 0 ? global.vectorQueueLen - 1 : 0;
|
||||||
@@ -87,10 +88,15 @@ export async function generateVector(): Promise<any> {
|
|||||||
reduceQueue();
|
reduceQueue();
|
||||||
// log
|
// log
|
||||||
if (err?.response) {
|
if (err?.response) {
|
||||||
console.log('openai error: 生成向量错误');
|
addLog.info('openai error: 生成向量错误', {
|
||||||
console.log(err.response?.status, err.response?.statusText, err.response?.data);
|
status: err.response?.status,
|
||||||
|
stateusText: err.response?.statusText,
|
||||||
|
data: err.response?.data
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log('生成向量错误:', err);
|
addLog.info('openai error: 生成向量错误', {
|
||||||
|
err
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// message error or openai account error
|
// message error or openai account error
|
||||||
@@ -98,7 +104,9 @@ export async function generateVector(): Promise<any> {
|
|||||||
err?.message === 'invalid message format' ||
|
err?.message === 'invalid message format' ||
|
||||||
err.response?.data?.error?.type === 'invalid_request_error'
|
err.response?.data?.error?.type === 'invalid_request_error'
|
||||||
) {
|
) {
|
||||||
console.log(dataItems);
|
addLog.info('invalid message format', {
|
||||||
|
dataItems
|
||||||
|
});
|
||||||
try {
|
try {
|
||||||
await TrainingData.findByIdAndUpdate(trainingId, {
|
await TrainingData.findByIdAndUpdate(trainingId, {
|
||||||
lockTime: new Date('2998/5/5')
|
lockTime: new Date('2998/5/5')
|
||||||
|
@@ -6,6 +6,8 @@ import axios from 'axios';
|
|||||||
type LoginStoreType = { provider: 'git'; lastRoute: string };
|
type LoginStoreType = { provider: 'git'; lastRoute: string };
|
||||||
|
|
||||||
type State = {
|
type State = {
|
||||||
|
lastRoute: string;
|
||||||
|
setLastRoute: (e: string) => void;
|
||||||
loginStore?: LoginStoreType;
|
loginStore?: LoginStoreType;
|
||||||
setLoginStore: (e: LoginStoreType) => void;
|
setLoginStore: (e: LoginStoreType) => void;
|
||||||
loading: boolean;
|
loading: boolean;
|
||||||
@@ -22,6 +24,12 @@ export const useGlobalStore = create<State>()(
|
|||||||
devtools(
|
devtools(
|
||||||
persist(
|
persist(
|
||||||
immer((set, get) => ({
|
immer((set, get) => ({
|
||||||
|
lastRoute: '/app/list',
|
||||||
|
setLastRoute(e) {
|
||||||
|
set((state) => {
|
||||||
|
state.lastRoute = e;
|
||||||
|
});
|
||||||
|
},
|
||||||
loginStore: undefined,
|
loginStore: undefined,
|
||||||
setLoginStore(e) {
|
setLoginStore(e) {
|
||||||
set((state) => {
|
set((state) => {
|
||||||
|
Reference in New Issue
Block a user