Browse Source

image: show parameters

Michael Yang 1 year ago
parent
commit
019e4a4558
1 changed files with 15 additions and 36 deletions
  1. 15 36
      server/images.go

+ 15 - 36
server/images.go

@@ -898,51 +898,28 @@ func DeleteModel(name string) error {
 }
 
 func ShowModelfile(model *Model) (string, error) {
-	type modelTemplate struct {
+	var mt struct {
 		*Model
-		From   string
-		Params string
+		From       string
+		Parameters []string
 	}
 
-	var params []string
 	for k, v := range model.Options {
-		switch val := v.(type) {
-		case string:
-			params = append(params, fmt.Sprintf("PARAMETER %s %s", k, val))
-		case int:
-			params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.Itoa(val)))
-		case float64:
-			params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.FormatFloat(val, 'f', 0, 64)))
-		case bool:
-			params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.FormatBool(val)))
+		switch v := v.(type) {
 		case []interface{}:
-			for _, nv := range val {
-				switch nval := nv.(type) {
-				case string:
-					params = append(params, fmt.Sprintf("PARAMETER %s %s", k, nval))
-				case int:
-					params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.Itoa(nval)))
-				case float64:
-					params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.FormatFloat(nval, 'f', 0, 64)))
-				case bool:
-					params = append(params, fmt.Sprintf("PARAMETER %s %s", k, strconv.FormatBool(nval)))
-				default:
-					log.Printf("unknown type: %s", reflect.TypeOf(nv).String())
-				}
+			for _, nv := range v {
+				mt.Parameters = append(mt.Parameters, fmt.Sprintf("%s %v", k, nv))
 			}
 		default:
-			log.Printf("unknown type: %s", reflect.TypeOf(v).String())
+			mt.Parameters = append(mt.Parameters, fmt.Sprintf("%s %v", k, v))
 		}
 	}
 
-	mt := modelTemplate{
-		Model:  model,
-		From:   model.OriginalModel,
-		Params: strings.Join(params, "\n"),
-	}
+	mt.Model = model
+	mt.From = model.ModelPath
 
-	if mt.From == "" {
-		mt.From = model.ModelPath
+	if model.OriginalModel != "" {
+		mt.From = model.OriginalModel
 	}
 
 	modelFile := `# Modelfile generated by "ollama show"
@@ -959,8 +936,10 @@ SYSTEM """{{ .System }}"""
 {{- range $adapter := .AdapterPaths }}
 ADAPTER {{ $adapter }}
 {{- end }}
-{{ .Params }}
-`
+
+{{- range $parameter := .Parameters }}
+PARAMETER {{ $parameter }}
+{{- end }}`
 
 	tmpl, err := template.New("").Parse(modelFile)
 	if err != nil {