()
| 502 | } |
| 503 | |
| 504 | func (i *imlLocalModel) OnInit() { |
| 505 | register.Handle(func(v server.Server) { |
| 506 | ctx := context.Background() |
| 507 | |
| 508 | list, err := i.localModelPackageService.List(ctx) |
| 509 | if err != nil { |
| 510 | return |
| 511 | } |
| 512 | oldModels := utils.SliceToMapO(list, func(s *ai_local.LocalModelPackage) (string, *ai_local.LocalModelPackage) { |
| 513 | return s.Id, s |
| 514 | }) |
| 515 | models, version := ai_provider_local.ModelsCanInstall() |
| 516 | for _, model := range models { |
| 517 | if v, ok := oldModels[model.Id]; ok { |
| 518 | delete(oldModels, model.Id) |
| 519 | if v.Version == version { |
| 520 | continue |
| 521 | } |
| 522 | err = i.localModelPackageService.Save(ctx, model.Id, &ai_local.EditLocalModelPackage{ |
| 523 | Size: &model.Size, |
| 524 | Hash: &model.Digest, |
| 525 | Description: &model.Description, |
| 526 | Version: &version, |
| 527 | Popular: &model.IsPopular, |
| 528 | }) |
| 529 | if err != nil { |
| 530 | return |
| 531 | } |
| 532 | } else { |
| 533 | err = i.localModelPackageService.Create(ctx, &ai_local.CreateLocalModelPackage{ |
| 534 | Id: model.Id, |
| 535 | Name: model.Name, |
| 536 | Size: model.Size, |
| 537 | Hash: model.Digest, |
| 538 | Description: model.Description, |
| 539 | Version: version, |
| 540 | Popular: model.IsPopular, |
| 541 | }) |
| 542 | if err != nil { |
| 543 | return |
| 544 | } |
| 545 | } |
| 546 | |
| 547 | } |
| 548 | for id := range oldModels { |
| 549 | err = i.localModelPackageService.Delete(ctx, id) |
| 550 | if err != nil { |
| 551 | return |
| 552 | } |
| 553 | } |
| 554 | //installModels, err := ai_provider_local.ModelsInstalled() |
| 555 | //if err != nil { |
| 556 | // return |
| 557 | //} |
| 558 | //for _, model := range installModels { |
| 559 | // |
| 560 | // id := strings.TrimSuffix(model.Name, ":latest") |
| 561 | // name := strings.TrimSuffix(model.Name, ":latest") |
nothing calls this directly
no test coverage detected