diff --git a/src/api/providers/fetchers/__tests__/lmstudio.test.ts b/src/api/providers/fetchers/__tests__/lmstudio.test.ts index ff9a109e50..1c551238d1 100644 --- a/src/api/providers/fetchers/__tests__/lmstudio.test.ts +++ b/src/api/providers/fetchers/__tests__/lmstudio.test.ts @@ -140,7 +140,7 @@ describe("LMStudio Fetcher", () => { expect(mockListLoaded).toHaveBeenCalledTimes(1) const expectedParsedModel = parseLMStudioModel(mockRawModel) - expect(result).toEqual({ [mockRawModel.modelKey]: expectedParsedModel }) + expect(result).toEqual({ [mockRawModel.path]: expectedParsedModel }) }) it("should use default baseUrl if an empty string is provided", async () => { diff --git a/src/api/providers/fetchers/lmstudio.ts b/src/api/providers/fetchers/lmstudio.ts index 976822c67d..ab5476dfdc 100644 --- a/src/api/providers/fetchers/lmstudio.ts +++ b/src/api/providers/fetchers/lmstudio.ts @@ -87,8 +87,9 @@ export async function getLMStudioModels(baseUrl = "http://localhost:1234"): Prom })) as Array for (const lmstudioModel of loadedModels) { - models[lmstudioModel.modelKey] = parseLMStudioModel(lmstudioModel) - modelsWithLoadedDetails.add(lmstudioModel.modelKey) + // Use path as the key to avoid duplicates when a model is both downloaded and loaded + models[lmstudioModel.path] = parseLMStudioModel(lmstudioModel) + modelsWithLoadedDetails.add(lmstudioModel.path) } } catch (error) { if (error.code === "ECONNREFUSED") {