Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
1c0e092e
Commit
1c0e092e
authored
Nov 14, 2023
by
Michael Yang
Browse files
progress cmd
parent
c4a3ccd7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
120 additions
and
12 deletions
+120
-12
cmd/cmd.go
cmd/cmd.go
+120
-12
No files found.
cmd/cmd.go
View file @
1c0e092e
...
@@ -30,6 +30,7 @@ import (
...
@@ -30,6 +30,7 @@ import (
"github.com/jmorganca/ollama/api"
"github.com/jmorganca/ollama/api"
"github.com/jmorganca/ollama/format"
"github.com/jmorganca/ollama/format"
"github.com/jmorganca/ollama/parser"
"github.com/jmorganca/ollama/parser"
"github.com/jmorganca/ollama/progress"
"github.com/jmorganca/ollama/readline"
"github.com/jmorganca/ollama/readline"
"github.com/jmorganca/ollama/server"
"github.com/jmorganca/ollama/server"
"github.com/jmorganca/ollama/version"
"github.com/jmorganca/ollama/version"
...
@@ -47,6 +48,15 @@ func CreateHandler(cmd *cobra.Command, args []string) error {
...
@@ -47,6 +48,15 @@ func CreateHandler(cmd *cobra.Command, args []string) error {
return
err
return
err
}
}
p
:=
progress
.
NewProgress
(
os
.
Stderr
)
defer
p
.
Stop
()
bars
:=
make
(
map
[
string
]
*
progress
.
Bar
)
status
:=
"transferring context"
spinner
:=
progress
.
NewSpinner
(
status
)
p
.
Add
(
status
,
spinner
)
modelfile
,
err
:=
os
.
ReadFile
(
filename
)
modelfile
,
err
:=
os
.
ReadFile
(
filename
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
@@ -95,16 +105,38 @@ func CreateHandler(cmd *cobra.Command, args []string) error {
...
@@ -95,16 +105,38 @@ func CreateHandler(cmd *cobra.Command, args []string) error {
}
}
}
}
request
:=
api
.
CreateRequest
{
Name
:
args
[
0
],
Path
:
filename
,
Modelfile
:
string
(
modelfile
)}
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
log
.
Printf
(
"progress(%s): %s"
,
resp
.
Digest
,
resp
.
Status
)
if
resp
.
Digest
!=
""
{
spinner
.
Stop
()
bar
,
ok
:=
bars
[
resp
.
Digest
]
if
!
ok
{
bar
=
progress
.
NewBar
(
resp
.
Status
,
resp
.
Total
,
resp
.
Completed
)
bars
[
resp
.
Digest
]
=
bar
p
.
Add
(
resp
.
Digest
,
bar
)
}
bar
.
Set
(
resp
.
Completed
)
}
else
if
status
!=
resp
.
Status
{
spinner
.
Stop
()
status
=
resp
.
Status
spinner
=
progress
.
NewSpinner
(
status
)
p
.
Add
(
status
,
spinner
)
}
return
nil
return
nil
}
}
request
:=
api
.
CreateRequest
{
Name
:
args
[
0
],
Path
:
filename
,
Modelfile
:
string
(
modelfile
)}
if
err
:=
client
.
Create
(
context
.
Background
(),
&
request
,
fn
);
err
!=
nil
{
if
err
:=
client
.
Create
(
context
.
Background
(),
&
request
,
fn
);
err
!=
nil
{
return
err
return
err
}
}
if
spinner
!=
nil
{
spinner
.
Stop
()
}
return
nil
return
nil
}
}
...
@@ -141,13 +173,53 @@ func PushHandler(cmd *cobra.Command, args []string) error {
...
@@ -141,13 +173,53 @@ func PushHandler(cmd *cobra.Command, args []string) error {
return
err
return
err
}
}
request
:=
api
.
PushRequest
{
Name
:
args
[
0
],
Insecure
:
insecure
}
p
:=
progress
.
NewProgress
(
os
.
Stderr
)
defer
p
.
Stop
()
bars
:=
make
(
map
[
string
]
*
progress
.
Bar
)
var
status
string
var
spinner
*
progress
.
Spinner
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
log
.
Printf
(
"progress(%s): %s"
,
resp
.
Digest
,
resp
.
Status
)
if
resp
.
Digest
!=
""
{
if
spinner
!=
nil
{
spinner
.
Stop
()
spinner
=
nil
}
bar
,
ok
:=
bars
[
resp
.
Digest
]
if
!
ok
{
bar
=
progress
.
NewBar
(
resp
.
Status
,
resp
.
Total
,
resp
.
Completed
)
bars
[
resp
.
Digest
]
=
bar
p
.
Add
(
resp
.
Digest
,
bar
)
}
bar
.
Set
(
resp
.
Completed
)
}
else
if
status
!=
resp
.
Status
{
if
spinner
!=
nil
{
spinner
.
Stop
()
spinner
=
nil
}
status
=
resp
.
Status
spinner
=
progress
.
NewSpinner
(
status
)
p
.
Add
(
status
,
spinner
)
}
return
nil
return
nil
}
}
return
client
.
Push
(
context
.
Background
(),
&
request
,
fn
)
request
:=
api
.
PushRequest
{
Name
:
args
[
0
],
Insecure
:
insecure
}
if
err
:=
client
.
Push
(
context
.
Background
(),
&
request
,
fn
);
err
!=
nil
{
return
err
}
if
spinner
!=
nil
{
spinner
.
Stop
()
}
return
nil
}
}
func
ListHandler
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
func
ListHandler
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
...
@@ -297,22 +369,58 @@ func PullHandler(cmd *cobra.Command, args []string) error {
...
@@ -297,22 +369,58 @@ func PullHandler(cmd *cobra.Command, args []string) error {
return
err
return
err
}
}
return
pull
(
args
[
0
],
insecure
)
}
func
pull
(
model
string
,
insecure
bool
)
error
{
client
,
err
:=
api
.
ClientFromEnvironment
()
client
,
err
:=
api
.
ClientFromEnvironment
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
request
:=
api
.
PullRequest
{
Name
:
model
,
Insecure
:
insecure
}
p
:=
progress
.
NewProgress
(
os
.
Stderr
)
defer
p
.
Stop
()
bars
:=
make
(
map
[
string
]
*
progress
.
Bar
)
var
status
string
var
spinner
*
progress
.
Spinner
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
fn
:=
func
(
resp
api
.
ProgressResponse
)
error
{
log
.
Printf
(
"progress(%s): %s"
,
resp
.
Digest
,
resp
.
Status
)
if
resp
.
Digest
!=
""
{
if
spinner
!=
nil
{
spinner
.
Stop
()
spinner
=
nil
}
bar
,
ok
:=
bars
[
resp
.
Digest
]
if
!
ok
{
bar
=
progress
.
NewBar
(
resp
.
Status
,
resp
.
Total
,
resp
.
Completed
)
bars
[
resp
.
Digest
]
=
bar
p
.
Add
(
resp
.
Digest
,
bar
)
}
bar
.
Set
(
resp
.
Completed
)
}
else
if
status
!=
resp
.
Status
{
if
spinner
!=
nil
{
spinner
.
Stop
()
spinner
=
nil
}
status
=
resp
.
Status
spinner
=
progress
.
NewSpinner
(
status
)
p
.
Add
(
status
,
spinner
)
}
return
nil
return
nil
}
}
return
client
.
Pull
(
context
.
Background
(),
&
request
,
fn
)
request
:=
api
.
PullRequest
{
Name
:
args
[
0
],
Insecure
:
insecure
}
if
err
:=
client
.
Pull
(
context
.
Background
(),
&
request
,
fn
);
err
!=
nil
{
return
err
}
if
spinner
!=
nil
{
spinner
.
Stop
()
}
return
nil
}
}
func
RunGenerate
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
func
RunGenerate
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment