|
4 | 4 | "bytes" |
5 | 5 | "fmt" |
6 | 6 | "os" |
7 | | - "slices" |
8 | 7 | "strings" |
9 | 8 | "time" |
10 | 9 |
|
@@ -89,12 +88,20 @@ func listModels(openai bool, backend string, desktopClient *desktop.Client, quie |
89 | 88 | } |
90 | 89 |
|
91 | 90 | if modelFilter != "" { |
| 91 | + // Normalize the filter to match stored model names |
| 92 | + normalizedFilter := dmrm.NormalizeModelName(modelFilter) |
92 | 93 | var filteredModels []dmrm.Model |
93 | 94 | for _, m := range models { |
94 | 95 | hasMatchingTag := false |
95 | 96 | for _, tag := range m.Tags { |
| 97 | + if tag == normalizedFilter { |
| 98 | + hasMatchingTag = true |
| 99 | + break |
| 100 | + } |
| 101 | + // Also check without the tag part |
96 | 102 | modelName, _, _ := strings.Cut(tag, ":") |
97 | | - if slices.Contains([]string{modelName, tag + ":latest", tag}, modelFilter) { |
| 103 | + filterName, _, _ := strings.Cut(normalizedFilter, ":") |
| 104 | + if modelName == filterName { |
98 | 105 | hasMatchingTag = true |
99 | 106 | break |
100 | 107 | } |
@@ -165,8 +172,10 @@ func appendRow(table *tablewriter.Table, tag string, model dmrm.Model) { |
165 | 172 | fmt.Fprintf(os.Stderr, "invalid model ID for model: %v\n", model) |
166 | 173 | return |
167 | 174 | } |
| 175 | + // Strip default "ai/" prefix and ":latest" tag for display |
| 176 | + displayTag := stripDefaultsFromModelName(tag) |
168 | 177 | table.Append([]string{ |
169 | | - tag, |
| 178 | + displayTag, |
170 | 179 | model.Config.Parameters, |
171 | 180 | model.Config.Quantization, |
172 | 181 | model.Config.Architecture, |
|
0 commit comments