| 24 | } |
| 25 | |
| 26 | func (i *imlProviderModelService) Save(ctx context.Context, id string, model *Model) error { |
| 27 | userId := utils.UserId(ctx) |
| 28 | now := time.Now() |
| 29 | info, err := i.store.First(ctx, map[string]interface{}{"uuid": id}) |
| 30 | if err != nil { |
| 31 | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| 32 | return err |
| 33 | } |
| 34 | if model.Name == nil || model.Provider == nil { |
| 35 | return errors.New("invalid params") |
| 36 | } |
| 37 | info = &ai.ProviderModel{ |
| 38 | UUID: id, |
| 39 | Name: *model.Name, |
| 40 | Type: *model.Type, |
| 41 | AccessConfiguration: *model.AccessConfiguration, |
| 42 | ModelParameters: *model.ModelParameters, |
| 43 | Provider: *model.Provider, |
| 44 | Creator: userId, |
| 45 | Updater: userId, |
| 46 | CreateAt: now, |
| 47 | UpdateAt: now, |
| 48 | } |
| 49 | } else { |
| 50 | if model.Name != nil { |
| 51 | info.Name = *model.Name |
| 52 | } |
| 53 | if model.Type != nil { |
| 54 | info.Type = *model.Type |
| 55 | } |
| 56 | if model.Provider != nil { |
| 57 | info.Provider = *model.Provider |
| 58 | } |
| 59 | if model.AccessConfiguration != nil { |
| 60 | info.AccessConfiguration = *model.AccessConfiguration |
| 61 | } |
| 62 | if model.ModelParameters != nil { |
| 63 | info.AccessConfiguration = *model.ModelParameters |
| 64 | } |
| 65 | info.Updater = userId |
| 66 | info.UpdateAt = now |
| 67 | } |
| 68 | return i.store.Save(ctx, info) |
| 69 | } |
| 70 | |
| 71 | func (i *imlProviderModelService) CheckNameDuplicate(ctx context.Context, provider string, name string, excludeId string) bool { |
| 72 | v, _ := i.store.First(ctx, map[string]interface{}{"provider": provider, "name": name}) |