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
f5cbcb08
Commit
f5cbcb08
authored
Jul 28, 2023
by
Bruce MacDonald
Browse files
specify stop params separately
parent
184ad8f0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
20 deletions
+13
-20
server/images.go
server/images.go
+13
-20
No files found.
server/images.go
View file @
f5cbcb08
...
@@ -14,7 +14,6 @@ import (
...
@@ -14,7 +14,6 @@ import (
"path"
"path"
"path/filepath"
"path/filepath"
"reflect"
"reflect"
"regexp"
"strconv"
"strconv"
"strings"
"strings"
"text/template"
"text/template"
...
@@ -203,7 +202,7 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
...
@@ -203,7 +202,7 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
}
}
var
layers
[]
*
LayerReader
var
layers
[]
*
LayerReader
params
:=
make
(
map
[
string
]
string
)
params
:=
make
(
map
[
string
]
[]
string
)
for
_
,
c
:=
range
commands
{
for
_
,
c
:=
range
commands
{
log
.
Printf
(
"[%s] - %s
\n
"
,
c
.
Name
,
c
.
Args
)
log
.
Printf
(
"[%s] - %s
\n
"
,
c
.
Name
,
c
.
Args
)
...
@@ -287,8 +286,8 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
...
@@ -287,8 +286,8 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
layer
.
MediaType
=
mediaType
layer
.
MediaType
=
mediaType
layers
=
append
(
layers
,
layer
)
layers
=
append
(
layers
,
layer
)
default
:
default
:
// runtime parameters
// runtime parameters
, build a list of args for each parameter to allow multiple values to be specified (ex: multiple stop tokens)
params
[
c
.
Name
]
=
c
.
Args
params
[
c
.
Name
]
=
append
(
params
[
c
.
Name
],
c
.
Args
)
}
}
}
}
...
@@ -430,7 +429,7 @@ func GetLayerWithBufferFromLayer(layer *Layer) (*LayerReader, error) {
...
@@ -430,7 +429,7 @@ func GetLayerWithBufferFromLayer(layer *Layer) (*LayerReader, error) {
return
newLayer
,
nil
return
newLayer
,
nil
}
}
func
paramsToReader
(
params
map
[
string
]
string
)
(
io
.
ReadSeeker
,
error
)
{
func
paramsToReader
(
params
map
[
string
]
[]
string
)
(
io
.
ReadSeeker
,
error
)
{
opts
:=
api
.
DefaultOptions
()
opts
:=
api
.
DefaultOptions
()
typeOpts
:=
reflect
.
TypeOf
(
opts
)
typeOpts
:=
reflect
.
TypeOf
(
opts
)
...
@@ -445,42 +444,36 @@ func paramsToReader(params map[string]string) (io.ReadSeeker, error) {
...
@@ -445,42 +444,36 @@ func paramsToReader(params map[string]string) (io.ReadSeeker, error) {
valueOpts
:=
reflect
.
ValueOf
(
&
opts
)
.
Elem
()
valueOpts
:=
reflect
.
ValueOf
(
&
opts
)
.
Elem
()
// iterate params and set values based on json struct tags
// iterate params and set values based on json struct tags
for
key
,
val
:=
range
params
{
for
key
,
val
s
:=
range
params
{
if
opt
,
ok
:=
jsonOpts
[
key
];
ok
{
if
opt
,
ok
:=
jsonOpts
[
key
];
ok
{
field
:=
valueOpts
.
FieldByName
(
opt
.
Name
)
field
:=
valueOpts
.
FieldByName
(
opt
.
Name
)
if
field
.
IsValid
()
&&
field
.
CanSet
()
{
if
field
.
IsValid
()
&&
field
.
CanSet
()
{
switch
field
.
Kind
()
{
switch
field
.
Kind
()
{
case
reflect
.
Float32
:
case
reflect
.
Float32
:
floatVal
,
err
:=
strconv
.
ParseFloat
(
val
,
32
)
floatVal
,
err
:=
strconv
.
ParseFloat
(
val
s
[
0
]
,
32
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid float value %s"
,
val
)
return
nil
,
fmt
.
Errorf
(
"invalid float value %s"
,
val
s
)
}
}
field
.
SetFloat
(
floatVal
)
field
.
SetFloat
(
floatVal
)
case
reflect
.
Int
:
case
reflect
.
Int
:
intVal
,
err
:=
strconv
.
ParseInt
(
val
,
10
,
0
)
intVal
,
err
:=
strconv
.
ParseInt
(
val
s
[
0
]
,
10
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid int value %s"
,
val
)
return
nil
,
fmt
.
Errorf
(
"invalid int value %s"
,
val
s
)
}
}
field
.
SetInt
(
intVal
)
field
.
SetInt
(
intVal
)
case
reflect
.
Bool
:
case
reflect
.
Bool
:
boolVal
,
err
:=
strconv
.
ParseBool
(
val
)
boolVal
,
err
:=
strconv
.
ParseBool
(
val
s
[
0
]
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid bool value %s"
,
val
)
return
nil
,
fmt
.
Errorf
(
"invalid bool value %s"
,
val
s
)
}
}
field
.
SetBool
(
boolVal
)
field
.
SetBool
(
boolVal
)
case
reflect
.
String
:
case
reflect
.
String
:
field
.
SetString
(
val
)
field
.
SetString
(
val
s
[
0
]
)
case
reflect
.
Slice
:
case
reflect
.
Slice
:
re
:=
regexp
.
MustCompile
(
`"(.*?)"`
)
// matches everything enclosed in quotes
field
.
Set
(
reflect
.
ValueOf
(
vals
))
vals
:=
re
.
FindAllStringSubmatch
(
val
,
-
1
)
var
sliceVal
[]
string
for
_
,
v
:=
range
vals
{
sliceVal
=
append
(
sliceVal
,
v
[
1
])
// v[1] is the captured group, v[0] is the entire match
}
field
.
Set
(
reflect
.
ValueOf
(
sliceVal
))
default
:
default
:
return
nil
,
fmt
.
Errorf
(
"unknown type %s for %s"
,
field
.
Kind
(),
key
)
return
nil
,
fmt
.
Errorf
(
"unknown type %s for %s"
,
field
.
Kind
(),
key
)
}
}
...
...
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