From 5c78af1f07464aba8243287b0deb714d1955963e Mon Sep 17 00:00:00 2001 From: pablodanswer Date: Fri, 26 Jul 2024 16:30:49 -0700 Subject: [PATCH] Deduplicate model names (#1950) --- .../app/chat/modal/configuration/LlmTab.tsx | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/web/src/app/chat/modal/configuration/LlmTab.tsx b/web/src/app/chat/modal/configuration/LlmTab.tsx index a747f15a1..b7538ee28 100644 --- a/web/src/app/chat/modal/configuration/LlmTab.tsx +++ b/web/src/app/chat/modal/configuration/LlmTab.tsx @@ -49,23 +49,36 @@ export const LlmTab = forwardRef( null ); - const llmOptions: { name: string; value: string }[] = []; + const llmOptionsByProvider: { + [provider: string]: { name: string; value: string }[]; + } = {}; + const uniqueModelNames = new Set(); llmProviders.forEach((llmProvider) => { + if (!llmOptionsByProvider[llmProvider.provider]) { + llmOptionsByProvider[llmProvider.provider] = []; + } + (llmProvider.display_model_names || llmProvider.model_names).forEach( (modelName) => { - llmOptions.push({ - name: modelName, - value: structureValue( - llmProvider.name, - llmProvider.provider, - modelName - ), - }); + if (!uniqueModelNames.has(modelName)) { + uniqueModelNames.add(modelName); + llmOptionsByProvider[llmProvider.provider].push({ + name: modelName, + value: structureValue( + llmProvider.name, + llmProvider.provider, + modelName + ), + }); + } } ); }); + const llmOptions = Object.entries(llmOptionsByProvider).flatMap( + ([provider, options]) => [...options] + ); return (