feat: ✨ unload ml engine when model is unselected, reuse ml engine
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
0e1bde62b7
commit
96777f9a4b
@ -94,15 +94,20 @@ export function MLEngineContextProvider({ children }: { children: ReactNode }) {
|
|||||||
if (selectedModel && runningModel !== selectedModel) {
|
if (selectedModel && runningModel !== selectedModel) {
|
||||||
(async () => {
|
(async () => {
|
||||||
setLoadingModel(selectedModel);
|
setLoadingModel(selectedModel);
|
||||||
|
|
||||||
const initProgressCallback: InitProgressCallback = async (
|
const initProgressCallback: InitProgressCallback = async (
|
||||||
initProgress
|
initProgress
|
||||||
) => {
|
) => {
|
||||||
setLoadingProgress(initProgress.progress);
|
setLoadingProgress(initProgress.progress);
|
||||||
};
|
};
|
||||||
|
|
||||||
engine.current = await CreateMLCEngine(selectedModel, {
|
if (!engine.current) {
|
||||||
initProgressCallback: initProgressCallback,
|
engine.current = await CreateMLCEngine(selectedModel, {
|
||||||
});
|
initProgressCallback: initProgressCallback,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await engine.current.reload(selectedModel);
|
||||||
|
}
|
||||||
|
|
||||||
setRunningModel(selectedModel);
|
setRunningModel(selectedModel);
|
||||||
setLoadingModel(null);
|
setLoadingModel(null);
|
||||||
@ -113,6 +118,8 @@ export function MLEngineContextProvider({ children }: { children: ReactNode }) {
|
|||||||
setGpuVendor(gpuVendor);
|
setGpuVendor(gpuVendor);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
} else if (!selectedModel && engine.current) {
|
||||||
|
engine.current.unload();
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
engine,
|
engine,
|
||||||
|
Loading…
Reference in New Issue
Block a user