|
|
|
@ -27,6 +27,7 @@ import ( |
|
|
|
"github.com/ollama/ollama/auth" |
|
|
|
"github.com/ollama/ollama/format" |
|
|
|
"github.com/ollama/ollama/llm" |
|
|
|
"github.com/ollama/ollama/parser" |
|
|
|
"github.com/ollama/ollama/server/envconfig" |
|
|
|
"github.com/ollama/ollama/types/errtypes" |
|
|
|
"github.com/ollama/ollama/types/model" |
|
|
|
@ -61,36 +62,36 @@ func (m *Model) IsEmbedding() bool { |
|
|
|
} |
|
|
|
|
|
|
|
func (m *Model) String() string { |
|
|
|
var modelfile model.File |
|
|
|
var modelfile parser.File |
|
|
|
|
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "model", |
|
|
|
Args: m.ModelPath, |
|
|
|
}) |
|
|
|
|
|
|
|
for _, adapter := range m.AdapterPaths { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "adapter", |
|
|
|
Args: adapter, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
for _, projector := range m.ProjectorPaths { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "model", |
|
|
|
Args: projector, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
if m.Template != "" { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "template", |
|
|
|
Args: m.Template, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
if m.System != "" { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "system", |
|
|
|
Args: m.System, |
|
|
|
}) |
|
|
|
@ -100,13 +101,13 @@ func (m *Model) String() string { |
|
|
|
switch v := v.(type) { |
|
|
|
case []any: |
|
|
|
for _, s := range v { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: k, |
|
|
|
Args: fmt.Sprintf("%v", s), |
|
|
|
}) |
|
|
|
} |
|
|
|
default: |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: k, |
|
|
|
Args: fmt.Sprintf("%v", v), |
|
|
|
}) |
|
|
|
@ -114,14 +115,14 @@ func (m *Model) String() string { |
|
|
|
} |
|
|
|
|
|
|
|
for _, license := range m.License { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "license", |
|
|
|
Args: license, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
for _, msg := range m.Messages { |
|
|
|
modelfile.Commands = append(modelfile.Commands, model.Command{ |
|
|
|
modelfile.Commands = append(modelfile.Commands, parser.Command{ |
|
|
|
Name: "message", |
|
|
|
Args: fmt.Sprintf("%s %s", msg.Role, msg.Content), |
|
|
|
}) |
|
|
|
@ -314,7 +315,7 @@ func realpath(rel, from string) string { |
|
|
|
return abspath |
|
|
|
} |
|
|
|
|
|
|
|
func CreateModel(ctx context.Context, name, modelFileDir, quantization string, modelfile *model.File, fn func(resp api.ProgressResponse)) (err error) { |
|
|
|
func CreateModel(ctx context.Context, name, modelFileDir, quantization string, modelfile *parser.File, fn func(resp api.ProgressResponse)) (err error) { |
|
|
|
config := ConfigV2{ |
|
|
|
OS: "linux", |
|
|
|
Architecture: "amd64", |
|
|
|
|