fix startup status detect
This commit is contained in:
parent
5729d9fc62
commit
6f629dbc55
@ -43,8 +43,8 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const onClickMainButton = async () => {
|
const onClickMainButton = async () => {
|
||||||
if (commonStore.status.modelStatus === ModelStatus.Offline) {
|
if (commonStore.status.status === ModelStatus.Offline) {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Starting });
|
commonStore.setStatus({ status: ModelStatus.Starting });
|
||||||
|
|
||||||
const modelConfig = commonStore.getCurrentModelConfig();
|
const modelConfig = commonStore.getCurrentModelConfig();
|
||||||
let modelName = '';
|
let modelName = '';
|
||||||
@ -54,7 +54,7 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
modelPath = `./${manifest.localModelDir}/${modelName}`;
|
modelPath = `./${manifest.localModelDir}/${modelName}`;
|
||||||
} else {
|
} else {
|
||||||
toast(t('Model Config Exception'), { type: 'error' });
|
toast(t('Model Config Exception'), { type: 'error' });
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (depErrorMsg) {
|
if (depErrorMsg) {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
commonStore.setDepComplete(true);
|
commonStore.setDepComplete(true);
|
||||||
@ -102,7 +102,7 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
if (status)
|
if (status)
|
||||||
commonStore.setStatus(status);
|
commonStore.setStatus(status);
|
||||||
});
|
});
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Loading });
|
commonStore.setStatus({ status: ModelStatus.Loading });
|
||||||
toast(t('Loading Model'), { type: 'info' });
|
toast(t('Loading Model'), { type: 'info' });
|
||||||
updateConfig({
|
updateConfig({
|
||||||
max_tokens: modelConfig.apiParameters.maxResponseToken,
|
max_tokens: modelConfig.apiParameters.maxResponseToken,
|
||||||
@ -161,51 +161,51 @@ export const RunButton: FC<{ onClickRun?: MouseEventHandler, iconMode?: boolean
|
|||||||
customCuda: customCudaFile !== ''
|
customCuda: customCudaFile !== ''
|
||||||
}).then((r) => {
|
}).then((r) => {
|
||||||
if (r.ok) {
|
if (r.ok) {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Working });
|
commonStore.setStatus({ status: ModelStatus.Working });
|
||||||
toastWithButton(t('Startup Completed'), t('Chat'), () => {
|
toastWithButton(t('Startup Completed'), t('Chat'), () => {
|
||||||
navigate({ pathname: '/chat' });
|
navigate({ pathname: '/chat' });
|
||||||
}, { type: 'success', autoClose: 3000 });
|
}, { type: 'success', autoClose: 3000 });
|
||||||
} else if (r.status === 304) {
|
} else if (r.status === 304) {
|
||||||
toast(t('Loading Model'), { type: 'info' });
|
toast(t('Loading Model'), { type: 'info' });
|
||||||
} else {
|
} else {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
toast(t('Failed to switch model'), { type: 'error' });
|
toast(t('Failed to switch model'), { type: 'error' });
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
toast(t('Failed to switch model'), { type: 'error' });
|
toast(t('Failed to switch model'), { type: 'error' });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
if (timeoutCount <= 0) {
|
if (timeoutCount <= 0) {
|
||||||
clearInterval(intervalId);
|
clearInterval(intervalId);
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
timeoutCount--;
|
timeoutCount--;
|
||||||
}, 1000);
|
}, 1000);
|
||||||
} else {
|
} else {
|
||||||
commonStore.setStatus({ modelStatus: ModelStatus.Offline });
|
commonStore.setStatus({ status: ModelStatus.Offline });
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onClick = async (e: any) => {
|
const onClick = async (e: any) => {
|
||||||
if (commonStore.status.modelStatus === ModelStatus.Offline)
|
if (commonStore.status.status === ModelStatus.Offline)
|
||||||
await onClickRun?.(e);
|
await onClickRun?.(e);
|
||||||
await onClickMainButton();
|
await onClickMainButton();
|
||||||
};
|
};
|
||||||
|
|
||||||
return (iconMode ?
|
return (iconMode ?
|
||||||
<ToolTipButton disabled={commonStore.status.modelStatus === ModelStatus.Starting}
|
<ToolTipButton disabled={commonStore.status.status === ModelStatus.Starting}
|
||||||
icon={iconModeButtonIcon[commonStore.status.modelStatus]}
|
icon={iconModeButtonIcon[commonStore.status.status]}
|
||||||
desc={t(mainButtonText[commonStore.status.modelStatus])}
|
desc={t(mainButtonText[commonStore.status.status])}
|
||||||
size="small" onClick={onClick} />
|
size="small" onClick={onClick} />
|
||||||
:
|
:
|
||||||
<Button disabled={commonStore.status.modelStatus === ModelStatus.Starting} appearance="primary" size="large"
|
<Button disabled={commonStore.status.status === ModelStatus.Starting} appearance="primary" size="large"
|
||||||
onClick={onClick}>
|
onClick={onClick}>
|
||||||
{t(mainButtonText[commonStore.status.modelStatus])}
|
{t(mainButtonText[commonStore.status.status])}
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -29,8 +29,8 @@ export const WorkHeader: FC = observer(() => {
|
|||||||
<div className="flex flex-col gap-1">
|
<div className="flex flex-col gap-1">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<PresenceBadge status={badgeStatus[commonStore.status.modelStatus]} />
|
<PresenceBadge status={badgeStatus[commonStore.status.status]} />
|
||||||
<Text size={100}>{t('Model Status') + ': ' + t(statusText[commonStore.status.modelStatus])}</Text>
|
<Text size={100}>{t('Model Status') + ': ' + t(statusText[commonStore.status.status])}</Text>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<ConfigSelector size="small" />
|
<ConfigSelector size="small" />
|
||||||
|
@ -93,7 +93,7 @@ const ChatPanel: FC = observer(() => {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (e.type === 'click' || (e.keyCode === 13 && !e.shiftKey)) {
|
if (e.type === 'click' || (e.keyCode === 13 && !e.shiftKey)) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (commonStore.status.modelStatus === ModelStatus.Offline) {
|
if (commonStore.status.status === ModelStatus.Offline) {
|
||||||
toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' });
|
toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ const CompletionPanel: FC = observer(() => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onSubmit = (prompt: string) => {
|
const onSubmit = (prompt: string) => {
|
||||||
if (commonStore.status.modelStatus === ModelStatus.Offline) {
|
if (commonStore.status.status === ModelStatus.Offline) {
|
||||||
toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' });
|
toast(t('Please click the button in the top right corner to start the model'), { type: 'warning' });
|
||||||
commonStore.setCompletionGenerating(false);
|
commonStore.setCompletionGenerating(false);
|
||||||
return;
|
return;
|
||||||
|
@ -33,7 +33,7 @@ export async function startup() {
|
|||||||
if (commonStore.settings.autoUpdatesCheck) // depends on config settings
|
if (commonStore.settings.autoUpdatesCheck) // depends on config settings
|
||||||
checkUpdate();
|
checkUpdate();
|
||||||
|
|
||||||
getStatus(500).then(status => { // depends on config api port
|
getStatus(1000).then(status => { // depends on config api port
|
||||||
if (status)
|
if (status)
|
||||||
commonStore.setStatus(status);
|
commonStore.setStatus(status);
|
||||||
});
|
});
|
||||||
|
@ -20,7 +20,7 @@ export enum ModelStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type Status = {
|
export type Status = {
|
||||||
modelStatus: ModelStatus;
|
status: ModelStatus;
|
||||||
pid: number;
|
pid: number;
|
||||||
device_name: string;
|
device_name: string;
|
||||||
}
|
}
|
||||||
@ -28,7 +28,7 @@ export type Status = {
|
|||||||
class CommonStore {
|
class CommonStore {
|
||||||
// global
|
// global
|
||||||
status: Status = {
|
status: Status = {
|
||||||
modelStatus: ModelStatus.Offline,
|
status: ModelStatus.Offline,
|
||||||
pid: 0,
|
pid: 0,
|
||||||
device_name: 'CPU'
|
device_name: 'CPU'
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user