fix: prevent duplicate model names

This commit is contained in:
sunanzhi
2025-03-12 14:53:06 +08:00
parent 51ea7e52b8
commit debf9c820c
2 changed files with 10 additions and 8 deletions
+4 -5
View File
@@ -61,12 +61,7 @@ func (i *imlProviderModelModule) UpdateProviderModel(ctx *gin.Context, provider
if modelInfo == nil || modelInfo.Provider != provider {
return fmt.Errorf("model not found")
}
// check model name duplicate
if has := i.providerModelService.CheckNameDuplicate(ctx, provider, input.Name, input.Id); has {
return fmt.Errorf("model name: `%s` duplicate", input.Name)
}
if err := i.providerModelService.Save(ctx, input.Id, &ai_model.Model{
Name: &input.Name,
AccessConfiguration: &input.AccessConfiguration,
ModelParameters: &input.ModelParameters,
}); err != nil {
@@ -115,6 +110,10 @@ func (i *imlProviderModelModule) AddProviderModel(ctx *gin.Context, provider str
if has := i.providerModelService.CheckNameDuplicate(ctx, provider, input.Name, ""); has {
return nil, fmt.Errorf("model name: `%s` duplicate", input.Name)
}
// check provider model exist
if _, has := p.GetModel(input.Name); has {
return nil, fmt.Errorf("provider model already exist")
}
id := uuid.New().String()
typeValue := "chat"
if err := i.providerModelService.Save(ctx, id, &ai_model.Model{
+6 -3
View File
@@ -72,10 +72,13 @@ func (i *imlProviderModelService) CheckNameDuplicate(ctx context.Context, provid
v, _ := i.store.First(ctx, map[string]interface{}{"provider": provider, "name": name})
if v == nil {
return false
} else if excludeId != "" && v.UUID != excludeId {
return true
} else {
if excludeId == "" {
return true
} else {
return v.UUID != excludeId
}
}
return false
}
func (i *imlProviderModelService) OnComplete() {