mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 03:13:41 +08:00
feat(model): auto-activate default model when provider API key is configured
This commit is contained in:
parent
4a99382004
commit
fd1462bf03
@ -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) {
|
||||
|
||||
@ -157,7 +157,7 @@ export function useProviders() {
|
||||
}
|
||||
}
|
||||
closeProviderModal()
|
||||
await loadProviders()
|
||||
await Promise.all([loadProviders(), loadActiveModel()])
|
||||
}
|
||||
|
||||
async function deleteProvider(provider: ProviderInfo) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user