diff --git a/core/cli/chat/session.go b/core/cli/chat/session.go index e3075a8af..651d05532 100644 --- a/core/cli/chat/session.go +++ b/core/cli/chat/session.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + "slices" "strings" ) @@ -58,7 +59,7 @@ func (s *chatSession) Clear() { } func (s *chatSession) SwitchModel(model string) error { - if !modelExists(s.models, model) { + if !slices.Contains(s.models, model) { return fmt.Errorf("model %q is not available. Use /models to see installed models", model) } s.model = model @@ -103,18 +104,9 @@ Then start a chat session: b.WriteString("multiple models are available; choose one with --model:\n") b.WriteString(formatChatModelList(models, "")) return "", errors.New(b.String()) - case !modelExists(models, requested): + case !slices.Contains(models, requested): return "", fmt.Errorf("model %q is not available. Use `local-ai models list` and `local-ai models install `, or pass an installed model with --model", requested) default: return requested, nil } } - -func modelExists(models []string, name string) bool { - for _, model := range models { - if model == name { - return true - } - } - return false -} diff --git a/pkg/xsysinfo/clinfo.go b/pkg/xsysinfo/clinfo.go index 9d8694b47..55bfc9343 100644 --- a/pkg/xsysinfo/clinfo.go +++ b/pkg/xsysinfo/clinfo.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "os/exec" + "slices" "strings" "sync" "time" @@ -49,12 +50,7 @@ type clinfoTypeProp struct { } func (t clinfoTypeProp) isGPU() bool { - for _, s := range t.Type { - if s == clDeviceTypeGPU { - return true - } - } - return false + return slices.Contains(t.Type, clDeviceTypeGPU) } // clinfoOnce caches the result for the process lifetime. GPU hardware