(
+ field: K,
+ transform: (event: E) => ProviderSettings[K] = inputEventTransform,
+ ) =>
+ (event: E | Event) => {
+ setApiConfigurationField(field, transform(event as E))
+ },
+ [setApiConfigurationField],
+ )
+
+ return (
+ <>
+
+
+
+
+ {t("settings:providers.apiKeyStorageNotice")}
+
+
+ {/* Optional: Custom base URL for self-hosted NVIDIA NIM deployments */}
+
+
+
+
+ {!apiConfiguration?.nvidiaApiKey && (
+
+ {t("settings:providers.getNvidiaApiKey")}
+
+ )}
+ >
+ )
+}
diff --git a/webview-ui/src/components/settings/providers/index.ts b/webview-ui/src/components/settings/providers/index.ts
index 597caffd1d7..c95a81c0991 100644
--- a/webview-ui/src/components/settings/providers/index.ts
+++ b/webview-ui/src/components/settings/providers/index.ts
@@ -14,6 +14,7 @@ export { QwenCode } from "./QwenCode"
export { Roo } from "./Roo"
export { Requesty } from "./Requesty"
export { SambaNova } from "./SambaNova"
+export { Nvidia } from "./Nvidia"
export { Unbound } from "./Unbound"
export { Vertex } from "./Vertex"
export { VSCodeLM } from "./VSCodeLM"
diff --git a/webview-ui/src/components/settings/utils/providerModelConfig.ts b/webview-ui/src/components/settings/utils/providerModelConfig.ts
index fa718143905..f531f93b73a 100644
--- a/webview-ui/src/components/settings/utils/providerModelConfig.ts
+++ b/webview-ui/src/components/settings/utils/providerModelConfig.ts
@@ -11,6 +11,7 @@ import {
vertexDefaultModelId,
xaiDefaultModelId,
sambaNovaDefaultModelId,
+ nvidiaDefaultModelId,
internationalZAiDefaultModelId,
mainlandZAiDefaultModelId,
fireworksDefaultModelId,
@@ -37,6 +38,7 @@ export const PROVIDER_SERVICE_CONFIG: Partial> =
vertex: vertexDefaultModelId,
xai: xaiDefaultModelId,
sambanova: sambaNovaDefaultModelId,
+ nvidia: nvidiaDefaultModelId,
zai: internationalZAiDefaultModelId,
fireworks: fireworksDefaultModelId,
minimax: minimaxDefaultModelId,
diff --git a/webview-ui/src/components/ui/hooks/useSelectedModel.ts b/webview-ui/src/components/ui/hooks/useSelectedModel.ts
index c32a08990c8..43d4e6caf85 100644
--- a/webview-ui/src/components/ui/hooks/useSelectedModel.ts
+++ b/webview-ui/src/components/ui/hooks/useSelectedModel.ts
@@ -19,6 +19,7 @@ import {
vscodeLlmDefaultModelId,
openAiCodexModels,
sambaNovaModels,
+ nvidiaModels,
internationalZAiModels,
mainlandZAiModels,
fireworksModels,
@@ -307,6 +308,11 @@ function getSelectedModel({
const info = sambaNovaModels[id as keyof typeof sambaNovaModels]
return { id, info }
}
+ case "nvidia": {
+ const id = apiConfiguration.apiModelId ?? defaultModelId
+ const info = nvidiaModels[id as keyof typeof nvidiaModels]
+ return { id, info }
+ }
case "fireworks": {
const id = apiConfiguration.apiModelId ?? defaultModelId
const info = fireworksModels[id as keyof typeof fireworksModels]