Descriptive arg error messages and other fixes
This commit is contained in:
parent
cdbda76fa9
commit
ebbaa8b513
@ -239,7 +239,7 @@ type ShowResponse struct {
|
|||||||
System string `json:"system,omitempty"`
|
System string `json:"system,omitempty"`
|
||||||
Details ModelDetails `json:"details,omitempty"`
|
Details ModelDetails `json:"details,omitempty"`
|
||||||
Messages []Message `json:"messages,omitempty"`
|
Messages []Message `json:"messages,omitempty"`
|
||||||
ModelInfo json.RawMessage `json:"model_info,omitempty"`
|
ModelInfo map[string]any `json:"model_info,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CopyRequest is the request passed to [Client.Copy].
|
// CopyRequest is the request passed to [Client.Copy].
|
||||||
|
16
cmd/cmd.go
16
cmd/cmd.go
@ -579,8 +579,10 @@ func ShowHandler(cmd *cobra.Command, args []string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(args) != 1 {
|
if len(args) == 0 {
|
||||||
return errors.New("missing model name")
|
return errors.New("missing model name")
|
||||||
|
} else if len(args) > 1 {
|
||||||
|
return errors.New("only one model name can be specified")
|
||||||
}
|
}
|
||||||
|
|
||||||
license, errLicense := cmd.Flags().GetBool("license")
|
license, errLicense := cmd.Flags().GetBool("license")
|
||||||
@ -623,12 +625,10 @@ func ShowHandler(cmd *cobra.Command, args []string) error {
|
|||||||
showType = "template"
|
showType = "template"
|
||||||
}
|
}
|
||||||
|
|
||||||
if flagsSet > 1 {
|
switch flagsSet {
|
||||||
return errors.New("only one of '--license', '--modelfile', '--parameters', '--system', or '--template' can be specified")
|
case 0:
|
||||||
} else if flagsSet == 0 {
|
|
||||||
return errors.New("one of '--license', '--modelfile', '--parameters', '--system', or '--template' must be specified")
|
return errors.New("one of '--license', '--modelfile', '--parameters', '--system', or '--template' must be specified")
|
||||||
}
|
case 1:
|
||||||
|
|
||||||
req := api.ShowRequest{Name: args[0]}
|
req := api.ShowRequest{Name: args[0]}
|
||||||
resp, err := client.Show(cmd.Context(), &req)
|
resp, err := client.Show(cmd.Context(), &req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -647,6 +647,9 @@ func ShowHandler(cmd *cobra.Command, args []string) error {
|
|||||||
case "template":
|
case "template":
|
||||||
fmt.Println(resp.Template)
|
fmt.Println(resp.Template)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
return errors.New("only one of '--license', '--modelfile', '--parameters', '--system', or '--template' can be specified")
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -1122,7 +1125,6 @@ func NewCLI() *cobra.Command {
|
|||||||
showCmd := &cobra.Command{
|
showCmd := &cobra.Command{
|
||||||
Use: "show MODEL",
|
Use: "show MODEL",
|
||||||
Short: "Show information for a model",
|
Short: "Show information for a model",
|
||||||
Args: cobra.ExactArgs(1),
|
|
||||||
PreRunE: checkServerHeartbeat,
|
PreRunE: checkServerHeartbeat,
|
||||||
RunE: ShowHandler,
|
RunE: ShowHandler,
|
||||||
}
|
}
|
||||||
|
@ -729,38 +729,30 @@ func GetModelInfo(req api.ShowRequest) (*api.ShowResponse, error) {
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getGGMLData(model *Model) ([]byte, error) {
|
func getGGMLData(model *Model) (llm.KV, error) {
|
||||||
f, err := os.Open(model.ModelPath)
|
f, err := os.Open(model.ModelPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
ggml, _, err := llm.DecodeGGML(f)
|
ggml, _, err := llm.DecodeGGML(f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
f.Close()
|
|
||||||
|
|
||||||
kv := ggml.KV()
|
kv := ggml.KV()
|
||||||
|
|
||||||
for k := range kv {
|
for k := range kv {
|
||||||
switch v := kv[k].(type) {
|
if t, ok := kv[k].([]any); ok {
|
||||||
case []interface{}:
|
kv[k] = fmt.Sprintf("(%d items)", len(t))
|
||||||
if len(v) > 5 {
|
|
||||||
kv[k] = []string{}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kv["embedding_model"] = model.IsEmbedding()
|
// kv["embedding_model"] = model.IsEmbedding()
|
||||||
|
|
||||||
ggmlJson, err := json.Marshal(kv)
|
return kv, nil
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return ggmlJson, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) ListModelsHandler(c *gin.Context) {
|
func (s *Server) ListModelsHandler(c *gin.Context) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user