From f24c3cdf7498a1ba52ad61fb65f36aec511d391f Mon Sep 17 00:00:00 2001 From: "Thomas G. Lopes" <26071571+TGlide@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:08:08 +0100 Subject: [PATCH] save provider to config --- packages/types/src/provider-settings.ts | 1 + .../settings/providers/HuggingFace.tsx | 34 ++++++++++++++----- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/types/src/provider-settings.ts b/packages/types/src/provider-settings.ts index 2373f8b97c..ea7089a81e 100644 --- a/packages/types/src/provider-settings.ts +++ b/packages/types/src/provider-settings.ts @@ -223,6 +223,7 @@ const groqSchema = apiModelIdProviderModelSchema.extend({ const huggingFaceSchema = baseProviderSettingsSchema.extend({ huggingFaceApiKey: z.string().optional(), huggingFaceModelId: z.string().optional(), + huggingFaceInferenceProvider: z.string().optional(), }) const chutesSchema = apiModelIdProviderModelSchema.extend({ diff --git a/webview-ui/src/components/settings/providers/HuggingFace.tsx b/webview-ui/src/components/settings/providers/HuggingFace.tsx index d1f7aa29fd..a87c59ec72 100644 --- a/webview-ui/src/components/settings/providers/HuggingFace.tsx +++ b/webview-ui/src/components/settings/providers/HuggingFace.tsx @@ -44,7 +44,9 @@ export const HuggingFace = ({ apiConfiguration, setApiConfigurationField }: Hugg const { t } = useAppTranslation() const [models, setModels] = useState([]) const [loading, setLoading] = useState(false) - const [selectedProvider, setSelectedProvider] = useState("") + const [selectedProvider, setSelectedProvider] = useState( + apiConfiguration?.huggingFaceInferenceProvider || "auto", + ) const handleInputChange = useCallback( ( @@ -87,23 +89,39 @@ export const HuggingFace = ({ apiConfiguration, setApiConfigurationField }: Hugg // Set default provider when model changes useEffect(() => { if (currentModel && availableProviders.length > 0) { - const currentProvider = availableProviders.find((p) => p.provider === selectedProvider) - if (!currentProvider) { - // Set to first available provider or "auto" - setSelectedProvider("auto") + const savedProvider = apiConfiguration?.huggingFaceInferenceProvider + if (savedProvider) { + // Use saved provider if it exists + setSelectedProvider(savedProvider) + } else { + const currentProvider = availableProviders.find((p) => p.provider === selectedProvider) + if (!currentProvider) { + // Set to "auto" as default + const defaultProvider = "auto" + setSelectedProvider(defaultProvider) + setApiConfigurationField("huggingFaceInferenceProvider", defaultProvider) + } } } - }, [currentModel, availableProviders, selectedProvider]) + }, [ + currentModel, + availableProviders, + selectedProvider, + apiConfiguration?.huggingFaceInferenceProvider, + setApiConfigurationField, + ]) const handleModelSelect = (modelId: string) => { setApiConfigurationField("huggingFaceModelId", modelId) // Reset provider selection when model changes - setSelectedProvider("auto") + const defaultProvider = "auto" + setSelectedProvider(defaultProvider) + setApiConfigurationField("huggingFaceInferenceProvider", defaultProvider) } const handleProviderSelect = (provider: string) => { setSelectedProvider(provider) - // You could store this in a separate field if needed + setApiConfigurationField("huggingFaceInferenceProvider", provider) } // Format provider name for display