feat(model): auto-activate default model when provider API key is configured

This commit is contained in:
matevip 2026-04-06 12:21:17 +08:00
parent 4a99382004
commit fd1462bf03
2 changed files with 26 additions and 1 deletions

View File

@ -44,6 +44,7 @@ public class ModelProviderService {
provider.setChatModel(ModelProtocol.resolveChatModel(request.getProtocol(), request.getChatModel()));
provider.setGenerateKwargs(writeJson(request.getGenerateKwargs()));
modelProviderMapper.updateById(provider);
tryAutoActivateModel(providerId, provider);
eventPublisher.publishEvent(new ModelConfigChangedEvent("provider-config-updated"));
return toProviderInfo(provider, modelConfigService.listModelsByProvider(providerId));
}
@ -131,6 +132,30 @@ public class ModelProviderService {
return null;
}
private void tryAutoActivateModel(String providerId, ModelProviderEntity provider) {
if (!isProviderConfigured(provider)) {
return;
}
List<ModelConfigEntity> providerModels = modelConfigService.listModelsByProvider(providerId);
if (providerModels.isEmpty()) {
return;
}
boolean shouldAutoActivate = false;
try {
ModelConfigEntity currentDefault = modelConfigService.getDefaultModel();
ModelProviderEntity defaultProvider = modelProviderMapper.selectById(currentDefault.getProvider());
if (!isProviderConfigured(defaultProvider)) {
shouldAutoActivate = true;
}
} catch (MateClawException e) {
shouldAutoActivate = true;
}
if (shouldAutoActivate) {
ModelConfigEntity firstModel = providerModels.get(0);
modelConfigService.setDefaultModel(providerId, firstModel.getModelName());
}
}
private ModelProviderEntity getProvider(String providerId) {
ModelProviderEntity provider = modelProviderMapper.selectById(providerId);
if (provider == null) {

View File

@ -157,7 +157,7 @@ export function useProviders() {
}
}
closeProviderModal()
await loadProviders()
await Promise.all([loadProviders(), loadActiveModel()])
}
async function deleteProvider(provider: ProviderInfo) {