diff --git a/web/src/components/Config.jsx b/web/src/components/Config.jsx index 1e711e4..242279d 100644 --- a/web/src/components/Config.jsx +++ b/web/src/components/Config.jsx @@ -331,6 +331,11 @@ function getFieldLabel(key, t) { return key.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()) } +const PROVIDER_MODELS = { + minimax: ['MiniMax-M2.7', 'MiniMax-M1', 'abab6.5s-chat', 'abab6.5-chat', 'abab5.5-chat'], + zai: ['glm', 'glm-4', 'glm-4-plus', 'glm-4-flash', 'glm-3-turbo'], +} + function PanelProviders({ providers, editProvider, providerForm, setProviderForm, setEditProvider, openProviderEdit, handleSaveProvider, api, loadData, t }) { const [validating, setValidating] = useState(null) const [validationStatus, setValidationStatus] = useState(null) @@ -352,17 +357,29 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm setValidating(null) } + const handleSelectModel = (providerName, model) => { + setProviderForm(prev => ({ + ...prev, + [providerName]: { ...(prev[providerName] || {}), model }, + })) + setEditProvider(providerName) + } + + const displayed = providers.filter(p => p.name === 'minimax' || p.name === 'zai') + return (
-
{t('config.setupDescription')}
- {providers.map((p, i) => { + {displayed.map((p, i) => { const isEditing = editProvider === p.name const isValidationTarget = validationStatus?.provider === p.name + const models = PROVIDER_MODELS[p.name] || [] + const selectedModel = providerForm[p.name]?.model || p.model + return (
- {p.name} + {p.name.toUpperCase()} {p.active && active} {isValidationTarget && validationStatus?.valid && {t('config.keyValid')}} {isValidationTarget && !validationStatus?.valid && {validationStatus?.error}} @@ -376,7 +393,7 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm { if (!isEditing) openProviderEdit(p) @@ -391,19 +408,31 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm - {isValidationTarget && validationStatus?.valid && ( + {isEditing && ( )}
-
- {p.active && active} - {p.model && p.model !== p.name && {p.model}} -
+ {models.length > 0 && ( +
+ Modèle +
+ {models.map(m => ( +
handleSelectModel(p.name, m)} + > + {m} +
+ ))} +
+
+ )}
)