list
This commit is contained in:
parent
a3df958032
commit
929542140f
|
|
@ -352,15 +352,6 @@ func (c *Client) Create(ctx context.Context, req *CreateRequest, fn CreateProgre
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// List lists models that are available locally.
|
|
||||||
func (c *Client) List(ctx context.Context) (*ListResponse, error) {
|
|
||||||
var lr ListResponse
|
|
||||||
if err := c.do(ctx, http.MethodGet, "/api/tags", nil, &lr); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &lr, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ListRunning lists running models.
|
// ListRunning lists running models.
|
||||||
func (c *Client) ListRunning(ctx context.Context) (*ProcessResponse, error) {
|
func (c *Client) ListRunning(ctx context.Context) (*ProcessResponse, error) {
|
||||||
var lr ProcessResponse
|
var lr ProcessResponse
|
||||||
|
|
|
||||||
51
cmd/cmd.go
51
cmd/cmd.go
|
|
@ -620,46 +620,6 @@ func PushHandler(cmd *cobra.Command, args []string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListHandler(cmd *cobra.Command, args []string) error {
|
|
||||||
client, err := api.ClientFromEnvironment()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
models, err := client.List(cmd.Context())
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var data [][]string
|
|
||||||
|
|
||||||
for _, m := range models.Models {
|
|
||||||
if len(args) == 0 || strings.HasPrefix(strings.ToLower(m.Name), strings.ToLower(args[0])) {
|
|
||||||
var size string
|
|
||||||
if m.RemoteModel != "" {
|
|
||||||
size = "-"
|
|
||||||
} else {
|
|
||||||
size = format.HumanBytes(m.Size)
|
|
||||||
}
|
|
||||||
|
|
||||||
data = append(data, []string{m.Name, m.Digest[:12], size, format.HumanTime(m.ModifiedAt, "Never")})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
table := tablewriter.NewWriter(os.Stdout)
|
|
||||||
table.SetHeader([]string{"NAME", "ID", "SIZE", "MODIFIED"})
|
|
||||||
table.SetHeaderAlignment(tablewriter.ALIGN_LEFT)
|
|
||||||
table.SetAlignment(tablewriter.ALIGN_LEFT)
|
|
||||||
table.SetHeaderLine(false)
|
|
||||||
table.SetBorder(false)
|
|
||||||
table.SetNoWhiteSpace(true)
|
|
||||||
table.SetTablePadding(" ")
|
|
||||||
table.AppendBulk(data)
|
|
||||||
table.Render()
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ListRunningHandler(cmd *cobra.Command, args []string) error {
|
func ListRunningHandler(cmd *cobra.Command, args []string) error {
|
||||||
client, err := api.ClientFromEnvironment()
|
client, err := api.ClientFromEnvironment()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -1728,14 +1688,6 @@ func NewCLI() *cobra.Command {
|
||||||
RunE: SignoutHandler,
|
RunE: SignoutHandler,
|
||||||
}
|
}
|
||||||
|
|
||||||
listCmd := &cobra.Command{
|
|
||||||
Use: "list",
|
|
||||||
Aliases: []string{"ls"},
|
|
||||||
Short: "List models",
|
|
||||||
PreRunE: checkServerHeartbeat,
|
|
||||||
RunE: ListHandler,
|
|
||||||
}
|
|
||||||
|
|
||||||
psCmd := &cobra.Command{
|
psCmd := &cobra.Command{
|
||||||
Use: "ps",
|
Use: "ps",
|
||||||
Short: "List running models",
|
Short: "List running models",
|
||||||
|
|
@ -1781,7 +1733,6 @@ func NewCLI() *cobra.Command {
|
||||||
stopCmd,
|
stopCmd,
|
||||||
pullCmd,
|
pullCmd,
|
||||||
pushCmd,
|
pushCmd,
|
||||||
listCmd,
|
|
||||||
psCmd,
|
psCmd,
|
||||||
copyCmd,
|
copyCmd,
|
||||||
deleteCmd,
|
deleteCmd,
|
||||||
|
|
@ -1824,7 +1775,7 @@ func NewCLI() *cobra.Command {
|
||||||
pushCmd,
|
pushCmd,
|
||||||
signinCmd,
|
signinCmd,
|
||||||
signoutCmd,
|
signoutCmd,
|
||||||
listCmd,
|
cmdList(),
|
||||||
psCmd,
|
psCmd,
|
||||||
copyCmd,
|
copyCmd,
|
||||||
deleteCmd,
|
deleteCmd,
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
|
||||||
continue
|
continue
|
||||||
case strings.HasPrefix(line, "/list"):
|
case strings.HasPrefix(line, "/list"):
|
||||||
args := strings.Fields(line)
|
args := strings.Fields(line)
|
||||||
if err := ListHandler(cmd, args[1:]); err != nil {
|
if err := listHandler(cmd, args[1:]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case strings.HasPrefix(line, "/load"):
|
case strings.HasPrefix(line, "/load"):
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/olekukonko/tablewriter"
|
||||||
|
"github.com/ollama/ollama/client"
|
||||||
|
"github.com/ollama/ollama/format"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
func cmdList() *cobra.Command {
|
||||||
|
return &cobra.Command{
|
||||||
|
Use: "list [pattern]",
|
||||||
|
Aliases: []string{"ls"},
|
||||||
|
Short: "List available models in the local repository",
|
||||||
|
Args: cobra.MaximumNArgs(1),
|
||||||
|
PreRunE: checkServerHeartbeat,
|
||||||
|
RunE: listHandler,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func listHandler(cmd *cobra.Command, args []string) error {
|
||||||
|
c := client.New()
|
||||||
|
w, err := c.List(cmd.Context())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
table := tablewriter.NewWriter(os.Stdout)
|
||||||
|
table.SetHeader([]string{"NAME", "ID", "SIZE", "MODIFIED"})
|
||||||
|
table.SetHeaderAlignment(tablewriter.ALIGN_LEFT)
|
||||||
|
table.SetAlignment(tablewriter.ALIGN_LEFT)
|
||||||
|
table.SetHeaderLine(false)
|
||||||
|
table.SetBorder(false)
|
||||||
|
table.SetNoWhiteSpace(true)
|
||||||
|
table.SetTablePadding(" ")
|
||||||
|
|
||||||
|
for _, m := range w.Models {
|
||||||
|
if len(args) == 0 || strings.HasPrefix(strings.ToLower(m.Name), strings.ToLower(args[0])) {
|
||||||
|
size := format.HumanBytes(m.Size)
|
||||||
|
if m.RemoteModel != "" {
|
||||||
|
size = "-"
|
||||||
|
}
|
||||||
|
table.Append([]string{
|
||||||
|
m.Model,
|
||||||
|
m.Digest[:12],
|
||||||
|
size,
|
||||||
|
format.HumanTime(m.ModifiedAt, "Never"),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
table.Render()
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue