(ctx *gin.Context, provider string, input *model_dto.EditModel)
| 57 | } |
| 58 | |
| 59 | func (i *imlProviderModelModule) UpdateProviderModel(ctx *gin.Context, provider string, input *model_dto.EditModel) error { |
| 60 | p, has := model_runtime.GetProvider(provider) |
| 61 | if !has { |
| 62 | return fmt.Errorf("ai provider not found") |
| 63 | } |
| 64 | // check provider exist |
| 65 | _, err := i.providerService.Get(ctx, provider) |
| 66 | if err != nil { |
| 67 | return err |
| 68 | } |
| 69 | modelInfo, _ := i.providerModelService.Get(ctx, input.Id) |
| 70 | if modelInfo == nil || modelInfo.Provider != provider { |
| 71 | return fmt.Errorf("model not found") |
| 72 | } |
| 73 | return i.transaction.Transaction(ctx, func(ctx context.Context) error { |
| 74 | if err = i.providerModelService.Save(ctx, input.Id, &ai_model.Model{ |
| 75 | AccessConfiguration: &input.AccessConfiguration, |
| 76 | ModelParameters: &input.ModelParameters, |
| 77 | }); err != nil { |
| 78 | return err |
| 79 | } |
| 80 | |
| 81 | // update provider model |
| 82 | iModel, err := model_runtime.NewCustomizeModel(input.Id, input.Name, p.Logo(), input.AccessConfiguration, input.ModelParameters) |
| 83 | if err != nil { |
| 84 | return err |
| 85 | } |
| 86 | // 判断是否需要发布model |
| 87 | if p.GetModelConfig().AccessConfigurationStatus { |
| 88 | if err := i.syncGateway(ctx, cluster.DefaultClusterID, []*gateway.DynamicRelease{ |
| 89 | newModel(provider, input.Name, input.AccessConfiguration), |
| 90 | }, true); err != nil { |
| 91 | return err |
| 92 | } |
| 93 | } |
| 94 | |
| 95 | p.SetModel(input.Id, iModel) |
| 96 | return nil |
| 97 | }) |
| 98 | |
| 99 | return nil |
| 100 | } |
| 101 | |
| 102 | func (i *imlProviderModelModule) DeleteProviderModel(ctx *gin.Context, provider string, id string) error { |
| 103 | p, has := model_runtime.GetProvider(provider) |
nothing calls this directly
no test coverage detected