pr feedback
- defer closing llm on embedding - do not override licenses - remove debugging print line - reformat model file docs
This commit is contained in:
parent
884d78ceb3
commit
1bee2347be
2 changed files with 18 additions and 21 deletions
|
@ -103,9 +103,7 @@ EMBED <file path>
|
|||
The `PARAMETER` instruction defines a parameter that can be set when the model is run.
|
||||
|
||||
```
|
||||
|
||||
PARAMETER <parameter> <parametervalue>
|
||||
|
||||
```
|
||||
|
||||
### Valid Parameters and Values
|
||||
|
@ -139,25 +137,19 @@ PARAMETER <parameter> <parametervalue>
|
|||
| `{{ .First }}` | A boolean value used to render specific template information for the first generation of a session. |
|
||||
|
||||
```
|
||||
|
||||
TEMPLATE """
|
||||
{{- if .First }}
|
||||
|
||||
### System:
|
||||
|
||||
{{ .System }}
|
||||
{{- end }}
|
||||
|
||||
### User:
|
||||
|
||||
{{ .Prompt }}
|
||||
|
||||
### Response:
|
||||
|
||||
"""
|
||||
|
||||
SYSTEM """<system message>"""
|
||||
|
||||
```
|
||||
|
||||
### SYSTEM
|
||||
|
@ -165,9 +157,7 @@ SYSTEM """<system message>"""
|
|||
The `SYSTEM` instruction specifies the system prompt to be used in the template, if applicable.
|
||||
|
||||
```
|
||||
|
||||
SYSTEM """<system message>"""
|
||||
|
||||
```
|
||||
|
||||
### LICENSE
|
||||
|
@ -175,18 +165,12 @@ SYSTEM """<system message>"""
|
|||
The `LICENSE` instruction allows you to specify the legal license under which the model used with this Modelfile is shared or distributed.
|
||||
|
||||
```
|
||||
|
||||
LICENSE """
|
||||
<license text>
|
||||
"""
|
||||
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- the **modelfile is not case sensitive**. In the examples, we use uppercase for instructions to make it easier to distinguish it from arguments.
|
||||
- Instructions can be in any order. In the examples, we start with FROM instruction to keep it easily readable.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
- Instructions can be in any order. In the examples, we start with FROM instruction to keep it easily readable.
|
|
@ -303,13 +303,23 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
|
|||
}
|
||||
}
|
||||
case "embed":
|
||||
// TODO: support entire directories here
|
||||
embedFilePath, err := filenameWithPath(path, c.Args)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
embed.files = append(embed.files, embedFilePath)
|
||||
case "license", "template", "system", "prompt":
|
||||
case "license":
|
||||
fn(api.ProgressResponse{Status: fmt.Sprintf("creating model %s layer", c.Name)})
|
||||
mediaType := fmt.Sprintf("application/vnd.ollama.image.%s", c.Name)
|
||||
|
||||
layer, err := CreateLayer(strings.NewReader(c.Args))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
layer.MediaType = mediaType
|
||||
layers = append(layers, layer)
|
||||
case "template", "system", "prompt":
|
||||
fn(api.ProgressResponse{Status: fmt.Sprintf("creating model %s layer", c.Name)})
|
||||
// remove the prompt layer if one exists
|
||||
mediaType := fmt.Sprintf("application/vnd.ollama.image.%s", c.Name)
|
||||
|
@ -354,8 +364,6 @@ func CreateModel(name string, path string, fn func(resp api.ProgressResponse)) e
|
|||
embed.opts.FromMap(formattedParams)
|
||||
}
|
||||
|
||||
fmt.Println(embed.model)
|
||||
|
||||
// generate the embedding layers
|
||||
embeddingLayers, err := embeddingLayers(embed)
|
||||
if err != nil {
|
||||
|
@ -426,6 +434,11 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("load model to generate embeddings: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
if llm != nil {
|
||||
llm.Close()
|
||||
}
|
||||
}()
|
||||
|
||||
addedFiles := make(map[string]bool) // keep track of files that have already been added
|
||||
for _, filePattern := range e.files {
|
||||
|
|
Loading…
Reference in a new issue