| | |
| | | return ResolveModelInRoot(modelID, paths.ModelsRoot()) |
| | | } |
| | | |
| | | func HasAnyUsableModel() bool { |
| | | return HasAnyUsableModelInRoot(paths.ModelsRoot()) |
| | | } |
| | | |
| | | func HasAnyUsableModelInRoot(modelsRoot string) bool { |
| | | for _, profile := range ListModelProfiles() { |
| | | resolved, err := ResolveModelInRoot(profile.ID, modelsRoot) |
| | | if err == nil && resolved.IsUsable() { |
| | | return true |
| | | } |
| | | } |
| | | return false |
| | | } |
| | | |
| | | func ResolveModelInRoot(modelID, modelsRoot string) (ResolvedModel, error) { |
| | | profile, err := GetModelProfile(modelID) |
| | | if err != nil { |