mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-15 03:55:09 +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.setChatModel(ModelProtocol.resolveChatModel(request.getProtocol(), request.getChatModel()));
|
||||||
provider.setGenerateKwargs(writeJson(request.getGenerateKwargs()));
|
provider.setGenerateKwargs(writeJson(request.getGenerateKwargs()));
|
||||||
modelProviderMapper.updateById(provider);
|
modelProviderMapper.updateById(provider);
|
||||||
|
tryAutoActivateModel(providerId, provider);
|
||||||
eventPublisher.publishEvent(new ModelConfigChangedEvent("provider-config-updated"));
|
eventPublisher.publishEvent(new ModelConfigChangedEvent("provider-config-updated"));
|
||||||
return toProviderInfo(provider, modelConfigService.listModelsByProvider(providerId));
|
return toProviderInfo(provider, modelConfigService.listModelsByProvider(providerId));
|
||||||
}
|
}
|
||||||
@ -131,6 +132,30 @@ public class ModelProviderService {
|
|||||||
return null;
|
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) {
|
private ModelProviderEntity getProvider(String providerId) {
|
||||||
ModelProviderEntity provider = modelProviderMapper.selectById(providerId);
|
ModelProviderEntity provider = modelProviderMapper.selectById(providerId);
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
|
|||||||
@ -157,7 +157,7 @@ export function useProviders() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
closeProviderModal()
|
closeProviderModal()
|
||||||
await loadProviders()
|
await Promise.all([loadProviders(), loadActiveModel()])
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteProvider(provider: ProviderInfo) {
|
async function deleteProvider(provider: ProviderInfo) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user