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
1f27d7f1
Commit
1f27d7f1
authored
Jul 20, 2023
by
Michael Yang
Browse files
fix stream errors
parent
00aaa059
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
15 deletions
+13
-15
api/client.go
api/client.go
+4
-0
server/images.go
server/images.go
+0
-7
server/routes.go
server/routes.go
+9
-8
No files found.
api/client.go
View file @
1f27d7f1
...
...
@@ -131,6 +131,10 @@ func (c *Client) stream(ctx context.Context, method, path string, data any, fn f
return
fmt
.
Errorf
(
"unmarshal: %w"
,
err
)
}
if
errorResponse
.
Error
!=
""
{
return
fmt
.
Errorf
(
"stream: %s"
,
errorResponse
.
Error
)
}
if
response
.
StatusCode
>=
400
{
return
StatusError
{
StatusCode
:
response
.
StatusCode
,
...
...
server/images.go
View file @
1f27d7f1
...
...
@@ -192,7 +192,6 @@ func CreateModel(name string, path string, fn func(status string)) error {
fn
(
"parsing modelfile"
)
commands
,
err
:=
parser
.
Parse
(
mf
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"error: %v"
,
err
))
return
err
}
...
...
@@ -227,14 +226,12 @@ func CreateModel(name string, path string, fn func(status string)) error {
fn
(
"creating model layer"
)
file
,
err
:=
os
.
Open
(
fp
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"couldn't find model '%s'"
,
c
.
Args
))
return
fmt
.
Errorf
(
"failed to open file: %v"
,
err
)
}
defer
file
.
Close
()
l
,
err
:=
CreateLayer
(
file
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"couldn't create model layer: %v"
,
err
))
return
fmt
.
Errorf
(
"failed to create layer: %v"
,
err
)
}
l
.
MediaType
=
"application/vnd.ollama.image.model"
...
...
@@ -244,7 +241,6 @@ func CreateModel(name string, path string, fn func(status string)) error {
for
_
,
l
:=
range
mf
.
Layers
{
newLayer
,
err
:=
GetLayerWithBufferFromLayer
(
l
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"couldn't read layer: %v"
,
err
))
return
err
}
layers
=
append
(
layers
,
newLayer
)
...
...
@@ -304,7 +300,6 @@ func CreateModel(name string, path string, fn func(status string)) error {
err
=
SaveLayers
(
layers
,
fn
,
false
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"error saving layers: %v"
,
err
))
return
err
}
...
...
@@ -312,7 +307,6 @@ func CreateModel(name string, path string, fn func(status string)) error {
fn
(
"writing manifest"
)
err
=
CreateManifest
(
name
,
cfg
,
manifestLayers
)
if
err
!=
nil
{
fn
(
fmt
.
Sprintf
(
"error creating manifest: %v"
,
err
))
return
err
}
...
...
@@ -610,7 +604,6 @@ func PullModel(name, username, password string, fn func(api.ProgressResponse)) e
for
_
,
layer
:=
range
layers
{
if
err
:=
downloadBlob
(
mp
,
layer
.
Digest
,
username
,
password
,
fn
);
err
!=
nil
{
fn
(
api
.
ProgressResponse
{
Status
:
fmt
.
Sprintf
(
"error downloading: %v"
,
err
),
Digest
:
layer
.
Digest
})
return
err
}
}
...
...
server/routes.go
View file @
1f27d7f1
...
...
@@ -60,7 +60,7 @@ func generate(c *gin.Context) {
ch
:=
make
(
chan
any
)
go
func
()
{
defer
close
(
ch
)
llm
.
Predict
(
req
.
Context
,
prompt
,
func
(
r
api
.
GenerateResponse
)
{
fn
:=
func
(
r
api
.
GenerateResponse
)
{
r
.
Model
=
req
.
Model
r
.
CreatedAt
=
time
.
Now
()
.
UTC
()
if
r
.
Done
{
...
...
@@ -68,7 +68,11 @@ func generate(c *gin.Context) {
}
ch
<-
r
})
}
if
err
:=
llm
.
Predict
(
req
.
Context
,
prompt
,
fn
);
err
!=
nil
{
ch
<-
gin
.
H
{
"error"
:
err
.
Error
()}
}
}()
streamResponse
(
c
,
ch
)
...
...
@@ -89,8 +93,7 @@ func pull(c *gin.Context) {
}
if
err
:=
PullModel
(
req
.
Name
,
req
.
Username
,
req
.
Password
,
fn
);
err
!=
nil
{
c
.
JSON
(
http
.
StatusInternalServerError
,
gin
.
H
{
"error"
:
err
.
Error
()})
return
ch
<-
gin
.
H
{
"error"
:
err
.
Error
()}
}
}()
...
...
@@ -112,8 +115,7 @@ func push(c *gin.Context) {
}
if
err
:=
PushModel
(
req
.
Name
,
req
.
Username
,
req
.
Password
,
fn
);
err
!=
nil
{
c
.
JSON
(
http
.
StatusInternalServerError
,
gin
.
H
{
"error"
:
err
.
Error
()})
return
ch
<-
gin
.
H
{
"error"
:
err
.
Error
()}
}
}()
...
...
@@ -137,8 +139,7 @@ func create(c *gin.Context) {
}
if
err
:=
CreateModel
(
req
.
Name
,
req
.
Path
,
fn
);
err
!=
nil
{
c
.
JSON
(
http
.
StatusBadRequest
,
gin
.
H
{
"message"
:
err
.
Error
()})
return
ch
<-
gin
.
H
{
"error"
:
err
.
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