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}
+
+ ))}
+
+
+ )}
)