Unverified Commit 42cf4db6 authored by Jeffrey Morgan's avatar Jeffrey Morgan Committed by GitHub
Browse files

parser: fix parsing Modelfiles with multiple FROM commands (#8449)

parent 93a8daf2
...@@ -62,7 +62,13 @@ func (f Modelfile) CreateRequest(relativeDir string) (*api.CreateRequest, error) ...@@ -62,7 +62,13 @@ func (f Modelfile) CreateRequest(relativeDir string) (*api.CreateRequest, error)
return nil, err return nil, err
} }
req.Files = digestMap if req.Files == nil {
req.Files = digestMap
} else {
for k, v := range digestMap {
req.Files[k] = v
}
}
case "adapter": case "adapter":
path, err := expandPath(c.Args, relativeDir) path, err := expandPath(c.Args, relativeDir)
if err != nil { if err != nil {
......
...@@ -793,15 +793,20 @@ func createBinFile(t *testing.T, kv map[string]any, ti []llm.Tensor) (string, st ...@@ -793,15 +793,20 @@ func createBinFile(t *testing.T, kv map[string]any, ti []llm.Tensor) (string, st
} }
func TestCreateRequestFiles(t *testing.T) { func TestCreateRequestFiles(t *testing.T) {
name, digest := createBinFile(t, nil, nil) n1, d1 := createBinFile(t, nil, nil)
n2, d2 := createBinFile(t, map[string]any{"foo": "bar"}, nil)
cases := []struct { cases := []struct {
input string input string
expected *api.CreateRequest expected *api.CreateRequest
}{ }{
{ {
fmt.Sprintf("FROM %s", name), fmt.Sprintf("FROM %s", n1),
&api.CreateRequest{Files: map[string]string{name: digest}}, &api.CreateRequest{Files: map[string]string{n1: d1}},
},
{
fmt.Sprintf("FROM %s\nFROM %s", n1, n2),
&api.CreateRequest{Files: map[string]string{n1: d1, n2: d2}},
}, },
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment