diff --git a/webview-ui/src/components/chat/CodeIndexPopover.tsx b/webview-ui/src/components/chat/CodeIndexPopover.tsx index b5742cc623a..4385e2e8446 100644 --- a/webview-ui/src/components/chat/CodeIndexPopover.tsx +++ b/webview-ui/src/components/chat/CodeIndexPopover.tsx @@ -97,6 +97,10 @@ const createValidationSchema = (provider: EmbedderProvider, t: any) => { .min(1, t("settings:codeIndex.validation.ollamaBaseUrlRequired")) .url(t("settings:codeIndex.validation.invalidOllamaUrl")), codebaseIndexEmbedderModelId: z.string().min(1, t("settings:codeIndex.validation.modelIdRequired")), + codebaseIndexEmbedderModelDimension: z + .number() + .min(1, t("settings:codeIndex.validation.modelDimensionRequired")) + .optional(), }) case "openai-compatible": @@ -709,40 +713,50 @@ export const CodeIndexPopover: React.FC = ({ - + updateSetting("codebaseIndexEmbedderModelId", e.target.value) } + placeholder={t("settings:codeIndex.modelPlaceholder")} className={cn("w-full", { "border-red-500": formErrors.codebaseIndexEmbedderModelId, - })}> - - {t("settings:codeIndex.selectModel")} - - {getAvailableModels().map((modelId) => { - const model = - codebaseIndexModels?.[ - currentSettings.codebaseIndexEmbedderProvider - ]?.[modelId] - return ( - - {modelId}{" "} - {model - ? t("settings:codeIndex.modelDimensions", { - dimension: model.dimension, - }) - : ""} - - ) })} - + /> {formErrors.codebaseIndexEmbedderModelId && (

{formErrors.codebaseIndexEmbedderModelId}

)} + +
+ + { + const value = e.target.value + ? parseInt(e.target.value, 10) || undefined + : undefined + updateSetting("codebaseIndexEmbedderModelDimension", value) + }} + placeholder={t("settings:codeIndex.modelDimensionPlaceholder")} + className={cn("w-full", { + "border-red-500": + formErrors.codebaseIndexEmbedderModelDimension, + })} + /> + {formErrors.codebaseIndexEmbedderModelDimension && ( +

+ {formErrors.codebaseIndexEmbedderModelDimension} +

+ )} +
)} @@ -835,7 +849,7 @@ export const CodeIndexPopover: React.FC = ({ } onInput={(e: any) => { const value = e.target.value - ? parseInt(e.target.value) + ? parseInt(e.target.value, 10) || undefined : undefined updateSetting("codebaseIndexEmbedderModelDimension", value) }}