From 8ca525dc7adce7860bc79ac8dfe54ab0e896a4ab Mon Sep 17 00:00:00 2001 From: H0llyW00dzZ Date: Mon, 25 Dec 2023 01:09:21 +0700 Subject: [PATCH 1/3] Fix [TypesScript] [LLM Api] Chaining Model - [+] fix(api.ts): make provider property optional in LLMModel interface --- app/client/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/client/api.ts b/app/client/api.ts index 30a220ea..28ff7b16 100644 --- a/app/client/api.ts +++ b/app/client/api.ts @@ -46,7 +46,7 @@ export interface LLMUsage { export interface LLMModel { name: string; available: boolean; - provider: LLMModelProvider; + provider?: LLMModelProvider; } export interface LLMModelProvider { From e9def2cdc5bd8be91c06572de879bdeb4ddd28fb Mon Sep 17 00:00:00 2001 From: H0llyW00dzZ Date: Mon, 25 Dec 2023 01:10:28 +0700 Subject: [PATCH 2/3] Refactor [Model] [LLM Api] Chaining Model - [+] refactor(model.ts): change forEach loop to arrow function for readability and consistency - [+] fix(model.ts): mark 'provider' property as optional in modelTable type - [+] fix(model.ts): use optional chaining when assigning provider property in modelTable --- app/utils/model.ts | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/app/utils/model.ts b/app/utils/model.ts index c4a4833e..b2a42ef0 100644 --- a/app/utils/model.ts +++ b/app/utils/model.ts @@ -10,24 +10,23 @@ export function collectModelTable( available: boolean; name: string; displayName: string; - provider: LLMModel["provider"]; + provider?: LLMModel["provider"]; // Marked as optional } > = {}; // default models - models.forEach( - (m) => - (modelTable[m.name] = { - ...m, - displayName: m.name, - }), - ); + models.forEach((m) => { + modelTable[m.name] = { + ...m, + displayName: m.name, // 'provider' is copied over if it exists + }; + }); // server custom models customModels .split(",") .filter((v) => !!v && v.length > 0) - .map((m) => { + .forEach((m) => { const available = !m.startsWith("-"); const nameConfig = m.startsWith("+") || m.startsWith("-") ? m.slice(1) : m; @@ -35,15 +34,15 @@ export function collectModelTable( // enable or disable all models if (name === "all") { - Object.values(modelTable).forEach((m) => (m.available = available)); + Object.values(modelTable).forEach((model) => (model.available = available)); + } else { + modelTable[name] = { + name, + displayName: displayName || name, + available, + provider: modelTable[name]?.provider, // Use optional chaining + }; } - - modelTable[name] = { - name, - displayName: displayName || name, - available, - provider: modelTable[name].provider, - }; }); return modelTable; } From 0c116251b1c51d16e3e9b3d025c4feed8d7c069e Mon Sep 17 00:00:00 2001 From: H0llyW00dzZ Date: Mon, 25 Dec 2023 01:45:24 +0700 Subject: [PATCH 3/3] Revert "Fix [TypesScript] [LLM Api] Chaining Model" This reverts commit 8ca525dc7adce7860bc79ac8dfe54ab0e896a4ab. Reason: It's suddenly stopped lmao --- app/client/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/client/api.ts b/app/client/api.ts index 28ff7b16..30a220ea 100644 --- a/app/client/api.ts +++ b/app/client/api.ts @@ -46,7 +46,7 @@ export interface LLMUsage { export interface LLMModel { name: string; available: boolean; - provider?: LLMModelProvider; + provider: LLMModelProvider; } export interface LLMModelProvider {