|
|
|
@ -610,12 +610,18 @@ func ShowModelHandler(c *gin.Context) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if req.Name == "" { |
|
|
|
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "name is required"}) |
|
|
|
switch { |
|
|
|
case req.Model == "" && req.Name == "": |
|
|
|
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "model is required"}) |
|
|
|
return |
|
|
|
case req.Model != "" && req.Name != "": |
|
|
|
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "both model and name are set"}) |
|
|
|
return |
|
|
|
case req.Model == "" && req.Name != "": |
|
|
|
req.Model = req.Name |
|
|
|
} |
|
|
|
|
|
|
|
resp, err := GetModelInfo(req.Name) |
|
|
|
resp, err := GetModelInfo(req) |
|
|
|
if err != nil { |
|
|
|
if os.IsNotExist(err) { |
|
|
|
c.JSON(http.StatusNotFound, gin.H{"error": fmt.Sprintf("model '%s' not found", req.Name)}) |
|
|
|
@ -628,8 +634,8 @@ func ShowModelHandler(c *gin.Context) { |
|
|
|
c.JSON(http.StatusOK, resp) |
|
|
|
} |
|
|
|
|
|
|
|
func GetModelInfo(name string) (*api.ShowResponse, error) { |
|
|
|
model, err := GetModel(name) |
|
|
|
func GetModelInfo(req api.ShowRequest) (*api.ShowResponse, error) { |
|
|
|
model, err := GetModel(req.Model) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
@ -642,6 +648,14 @@ func GetModelInfo(name string) (*api.ShowResponse, error) { |
|
|
|
QuantizationLevel: model.Config.FileType, |
|
|
|
} |
|
|
|
|
|
|
|
if req.System != "" { |
|
|
|
model.System = req.System |
|
|
|
} |
|
|
|
|
|
|
|
if req.Template != "" { |
|
|
|
model.Template = req.Template |
|
|
|
} |
|
|
|
|
|
|
|
resp := &api.ShowResponse{ |
|
|
|
License: strings.Join(model.License, "\n"), |
|
|
|
System: model.System, |
|
|
|
@ -649,13 +663,6 @@ func GetModelInfo(name string) (*api.ShowResponse, error) { |
|
|
|
Details: modelDetails, |
|
|
|
} |
|
|
|
|
|
|
|
mf, err := ShowModelfile(model) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
|
|
|
|
resp.Modelfile = mf |
|
|
|
|
|
|
|
var params []string |
|
|
|
cs := 30 |
|
|
|
for k, v := range model.Options { |
|
|
|
@ -685,6 +692,19 @@ func GetModelInfo(name string) (*api.ShowResponse, error) { |
|
|
|
} |
|
|
|
resp.Parameters = strings.Join(params, "\n") |
|
|
|
|
|
|
|
for k, v := range req.Options { |
|
|
|
if _, ok := req.Options[k]; ok { |
|
|
|
model.Options[k] = v |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
mf, err := ShowModelfile(model) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
|
|
|
|
resp.Modelfile = mf |
|
|
|
|
|
|
|
return resp, nil |
|
|
|
} |
|
|
|
|
|
|
|
|