Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Ollama Ollama ParseFile

From Leeroopedia
Knowledge Sources
Domains Parsing, Configuration
Last Updated 2026-02-14 00:00 GMT

Overview

Concrete tool for parsing Modelfile text into structured command lists provided by the parser package.

Description

ParseFile reads a Modelfile from an io.Reader and produces a Modelfile struct containing an ordered slice of Command entries. Each Command has a Name (e.g., "from", "system", "parameter") and Args (the directive value).

The companion CreateRequest method on Modelfile translates the parsed commands into an api.CreateRequest suitable for the model creation API. It reads adapter files from disk, computes SHA-256 digests, and encodes binary content as base64.

Usage

Called by the CLI ollama create command and the /api/create HTTP handler to process user-provided Modelfiles.

Code Reference

Source Location

  • Repository: ollama
  • File: parser/parser.go
  • Lines: L377-507 (ParseFile), L56-156 (CreateRequest)

Signature

func ParseFile(r io.Reader) (*Modelfile, error)
func (f Modelfile) CreateRequest(relativeDir string) (*api.CreateRequest, error)

Import

import "github.com/ollama/ollama/parser"

I/O Contract

Inputs (ParseFile)

Name Type Required Description
r io.Reader Yes Reader providing Modelfile text content

Inputs (CreateRequest)

Name Type Required Description
relativeDir string Yes Base directory for resolving relative file paths in ADAPTER directives

Outputs (ParseFile)

Name Type Description
*Modelfile *parser.Modelfile Parsed Modelfile with Commands []Command
error error Non-nil if parsing fails (missing FROM, invalid syntax)

Outputs (CreateRequest)

Name Type Description
*api.CreateRequest *api.CreateRequest API request with From, Files, Adapters, Template, System, Parameters, License, Messages
error error Non-nil if file reading or digest computation fails

Usage Examples

Parsing a Modelfile

import (
    "os"
    "github.com/ollama/ollama/parser"
)

f, _ := os.Open("Modelfile")
defer f.Close()

modelfile, err := parser.ParseFile(f)
if err != nil {
    // handle error
}

// Access parsed commands
for _, cmd := range modelfile.Commands {
    fmt.Printf("%s: %s\n", cmd.Name, cmd.Args)
}

// Convert to API request
req, err := modelfile.CreateRequest(".")

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment