feat: Update Ollama UI to use text inputs (#5818)

This commit is contained in:
Daniel 2025-07-17 12:40:05 -05:00 committed by GitHub
parent fb374b3e94
commit c417f43b18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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<CodeIndexPopoverProps> = ({
<label className="text-sm font-medium">
{t("settings:codeIndex.modelLabel")}
</label>
<VSCodeDropdown
value={currentSettings.codebaseIndexEmbedderModelId}
onChange={(e: any) =>
<VSCodeTextField
value={currentSettings.codebaseIndexEmbedderModelId || ""}
onInput={(e: any) =>
updateSetting("codebaseIndexEmbedderModelId", e.target.value)
}
placeholder={t("settings:codeIndex.modelPlaceholder")}
className={cn("w-full", {
"border-red-500": formErrors.codebaseIndexEmbedderModelId,
})}>
<VSCodeOption value="" className="p-2">
{t("settings:codeIndex.selectModel")}
</VSCodeOption>
{getAvailableModels().map((modelId) => {
const model =
codebaseIndexModels?.[
currentSettings.codebaseIndexEmbedderProvider
]?.[modelId]
return (
<VSCodeOption key={modelId} value={modelId} className="p-2">
{modelId}{" "}
{model
? t("settings:codeIndex.modelDimensions", {
dimension: model.dimension,
})
: ""}
</VSCodeOption>
)
})}
</VSCodeDropdown>
/>
{formErrors.codebaseIndexEmbedderModelId && (
<p className="text-xs text-vscode-errorForeground mt-1 mb-0">
{formErrors.codebaseIndexEmbedderModelId}
</p>
)}
</div>
<div className="space-y-2">
<label className="text-sm font-medium">
{t("settings:codeIndex.modelDimensionLabel")}
</label>
<VSCodeTextField
value={
currentSettings.codebaseIndexEmbedderModelDimension?.toString() ||
""
}
onInput={(e: any) => {
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 && (
<p className="text-xs text-vscode-errorForeground mt-1 mb-0">
{formErrors.codebaseIndexEmbedderModelDimension}
</p>
)}
</div>
</>
)}
@ -835,7 +849,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
}
onInput={(e: any) => {
const value = e.target.value
? parseInt(e.target.value)
? parseInt(e.target.value, 10) || undefined
: undefined
updateSetting("codebaseIndexEmbedderModelDimension", value)
}}