Skip to content

Commit f24c3cd

Browse files
committed
save provider to config
1 parent 921ede7 commit f24c3cd

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

packages/types/src/provider-settings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ const groqSchema = apiModelIdProviderModelSchema.extend({
223223
const huggingFaceSchema = baseProviderSettingsSchema.extend({
224224
huggingFaceApiKey: z.string().optional(),
225225
huggingFaceModelId: z.string().optional(),
226+
huggingFaceInferenceProvider: z.string().optional(),
226227
})
227228

228229
const chutesSchema = apiModelIdProviderModelSchema.extend({

webview-ui/src/components/settings/providers/HuggingFace.tsx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ export const HuggingFace = ({ apiConfiguration, setApiConfigurationField }: Hugg
4444
const { t } = useAppTranslation()
4545
const [models, setModels] = useState<HuggingFaceModel[]>([])
4646
const [loading, setLoading] = useState(false)
47-
const [selectedProvider, setSelectedProvider] = useState<string>("")
47+
const [selectedProvider, setSelectedProvider] = useState<string>(
48+
apiConfiguration?.huggingFaceInferenceProvider || "auto",
49+
)
4850

4951
const handleInputChange = useCallback(
5052
<K extends keyof ProviderSettings, E>(
@@ -87,23 +89,39 @@ export const HuggingFace = ({ apiConfiguration, setApiConfigurationField }: Hugg
8789
// Set default provider when model changes
8890
useEffect(() => {
8991
if (currentModel && availableProviders.length > 0) {
90-
const currentProvider = availableProviders.find((p) => p.provider === selectedProvider)
91-
if (!currentProvider) {
92-
// Set to first available provider or "auto"
93-
setSelectedProvider("auto")
92+
const savedProvider = apiConfiguration?.huggingFaceInferenceProvider
93+
if (savedProvider) {
94+
// Use saved provider if it exists
95+
setSelectedProvider(savedProvider)
96+
} else {
97+
const currentProvider = availableProviders.find((p) => p.provider === selectedProvider)
98+
if (!currentProvider) {
99+
// Set to "auto" as default
100+
const defaultProvider = "auto"
101+
setSelectedProvider(defaultProvider)
102+
setApiConfigurationField("huggingFaceInferenceProvider", defaultProvider)
103+
}
94104
}
95105
}
96-
}, [currentModel, availableProviders, selectedProvider])
106+
}, [
107+
currentModel,
108+
availableProviders,
109+
selectedProvider,
110+
apiConfiguration?.huggingFaceInferenceProvider,
111+
setApiConfigurationField,
112+
])
97113

98114
const handleModelSelect = (modelId: string) => {
99115
setApiConfigurationField("huggingFaceModelId", modelId)
100116
// Reset provider selection when model changes
101-
setSelectedProvider("auto")
117+
const defaultProvider = "auto"
118+
setSelectedProvider(defaultProvider)
119+
setApiConfigurationField("huggingFaceInferenceProvider", defaultProvider)
102120
}
103121

104122
const handleProviderSelect = (provider: string) => {
105123
setSelectedProvider(provider)
106-
// You could store this in a separate field if needed
124+
setApiConfigurationField("huggingFaceInferenceProvider", provider)
107125
}
108126

109127
// Format provider name for display

0 commit comments

Comments
 (0)