diff --git a/extensions/model-extension/src/legacy/model-json.ts b/extensions/model-extension/src/legacy/model-json.ts index c47b7c661..3cad6014b 100644 --- a/extensions/model-extension/src/legacy/model-json.ts +++ b/extensions/model-extension/src/legacy/model-json.ts @@ -1,5 +1,13 @@ import { InferenceEngine, Model, fs, joinPath } from '@janhq/core' //// LEGACY MODEL FOLDER //// +const LocalEngines = [ + InferenceEngine.cortex, + InferenceEngine.cortex_llamacpp, + InferenceEngine.cortex_tensorrtllm, + InferenceEngine.cortex_onnx, + InferenceEngine.nitro_tensorrt_llm, + InferenceEngine.nitro, +] /** * Scan through models folder and return downloaded models * @returns @@ -57,7 +65,11 @@ export const scanModelsFolder = async (): Promise => { !source.url.startsWith(`https://`) ) ) - if (existFiles.every((exist) => exist)) return model + if ( + !LocalEngines.includes(model.engine) || + existFiles.every((exist) => exist) + ) + return model const result = await fs .readdirSync(await joinPath([_homeDir, dirName])) diff --git a/web/hooks/useModels.ts b/web/hooks/useModels.ts index c856f6e3c..400e02793 100644 --- a/web/hooks/useModels.ts +++ b/web/hooks/useModels.ts @@ -43,7 +43,13 @@ const useModels = () => { .models.values() .toArray() .filter((e) => !isLocalEngine(e.engine)) - const toUpdate = [...localModels, ...remoteModels] + const toUpdate = [ + ...localModels, + ...remoteModels.filter( + (e: Model) => !localModels.some((g: Model) => g.id === e.id) + ), + ] + setDownloadedModels(toUpdate) let isUpdated = false