server

package
v0.1.38 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2024 License: MIT Imports: 52 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DefaultRegistry       = "registry.ollama.ai"
	DefaultNamespace      = "library"
	DefaultTag            = "latest"
	DefaultProtocolScheme = "https"
)

Variables

View Source
var (
	ErrInvalidImageFormat  = errors.New("invalid image format")
	ErrInvalidProtocol     = errors.New("invalid protocol scheme")
	ErrInsecureProtocol    = errors.New("insecure protocol http")
	ErrInvalidDigestFormat = errors.New("invalid digest format")
)
View Source
var ErrMaxQueue = fmt.Errorf("server busy, please try again.  maximum pending requests exceeded")

Functions

func ChatPrompt

func ChatPrompt(tmpl string, messages []api.Message, window int, encode func(string) ([]int, error)) (string, error)

ChatPrompt builds up a prompt from a series of messages, truncating based on context window size

func CopyModel

func CopyModel(src, dst model.Name) error

func CreateModel

func CreateModel(ctx context.Context, name, modelFileDir, quantization string, modelfile *model.File, fn func(resp api.ProgressResponse)) (err error)

func DeleteModel

func DeleteModel(name string) error

func GetBlobsPath

func GetBlobsPath(digest string) (string, error)

func GetManifestPath

func GetManifestPath() (string, error)

func GetModelInfo

func GetModelInfo(req api.ShowRequest) (*api.ShowResponse, error)

func GetSHA256Digest

func GetSHA256Digest(r io.Reader) (string, int64)

GetSHA256Digest returns the SHA256 hash of a given buffer and returns it, and the size of buffer

func Prompt

func Prompt(tmpl, system, prompt, response string, generate bool) (string, error)

Prompt renders a prompt from a template. If generate is set to true, the response and parts of the template following it are not rendered

func PruneDirectory

func PruneDirectory(path string) error

func PruneLayers

func PruneLayers() error

func PullModel

func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn func(api.ProgressResponse)) error

func PushModel

func PushModel(ctx context.Context, name string, regOpts *registryOptions, fn func(api.ProgressResponse)) error

func Serve

func Serve(ln net.Listener) error

func WriteManifest

func WriteManifest(name string, config *Layer, layers []*Layer) error

Types

type ByDuration added in v0.1.33

type ByDuration []*runnerRef

func (ByDuration) Len added in v0.1.33

func (a ByDuration) Len() int

func (ByDuration) Less added in v0.1.33

func (a ByDuration) Less(i, j int) bool

func (ByDuration) Swap added in v0.1.33

func (a ByDuration) Swap(i, j int)

type ConfigV2

type ConfigV2 struct {
	ModelFormat   string   `json:"model_format"`
	ModelFamily   string   `json:"model_family"`
	ModelFamilies []string `json:"model_families"`
	ModelType     string   `json:"model_type"`
	FileType      string   `json:"file_type"`

	// required by spec
	Architecture string `json:"architecture"`
	OS           string `json:"os"`
	RootFS       RootFS `json:"rootfs"`
}

type Layer

type Layer struct {
	MediaType string `json:"mediaType"`
	Digest    string `json:"digest"`
	Size      int64  `json:"size"`
	From      string `json:"from,omitempty"`
	// contains filtered or unexported fields
}

func NewLayer

func NewLayer(r io.Reader, mediatype string) (*Layer, error)

func NewLayerFromLayer

func NewLayerFromLayer(digest, mediatype, from string) (*Layer, error)

func (*Layer) Open added in v0.1.35

func (l *Layer) Open() (io.ReadCloser, error)

type LlmRequest added in v0.1.33

type LlmRequest struct {
	// contains filtered or unexported fields
}

type Manifest added in v0.1.35

type Manifest struct {
	ManifestV2
	Digest string `json:"-"`
}

func ParseNamedManifest added in v0.1.35

func ParseNamedManifest(name model.Name) (*Manifest, error)

func (*Manifest) Size added in v0.1.35

func (m *Manifest) Size() (size int64)

type ManifestV2

type ManifestV2 struct {
	SchemaVersion int      `json:"schemaVersion"`
	MediaType     string   `json:"mediaType"`
	Config        *Layer   `json:"config"`
	Layers        []*Layer `json:"layers"`
}

func GetManifest

func GetManifest(mp ModelPath) (*ManifestV2, string, error)

type Message

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}

type Model

type Model struct {
	Name           string `json:"name"`
	Config         ConfigV2
	ShortName      string
	ModelPath      string
	ParentModel    string
	AdapterPaths   []string
	ProjectorPaths []string
	Template       string
	System         string
	License        []string
	Digest         string
	Options        map[string]interface{}
	Messages       []Message
}

func GetModel

func GetModel(name string) (*Model, error)

func (*Model) IsEmbedding

func (m *Model) IsEmbedding() bool

func (*Model) String added in v0.1.34

func (m *Model) String() string

type ModelPath

type ModelPath struct {
	ProtocolScheme string
	Registry       string
	Namespace      string
	Repository     string
	Tag            string
}

func ParseModelPath

func ParseModelPath(name string) ModelPath

func (ModelPath) BaseURL

func (mp ModelPath) BaseURL() *url.URL

func (ModelPath) GetFullTagname

func (mp ModelPath) GetFullTagname() string

func (ModelPath) GetManifestPath

func (mp ModelPath) GetManifestPath() (string, error)

GetManifestPath returns the path to the manifest file for the given model path, it is up to the caller to create the directory if it does not exist.

func (ModelPath) GetNamespaceRepository

func (mp ModelPath) GetNamespaceRepository() string

func (ModelPath) GetShortTagname

func (mp ModelPath) GetShortTagname() string

func (ModelPath) Validate

func (mp ModelPath) Validate() error

type RootFS

type RootFS struct {
	Type    string   `json:"type"`
	DiffIDs []string `json:"diff_ids"`
}

type Scheduler added in v0.1.33

type Scheduler struct {
	// contains filtered or unexported fields
}

func InitScheduler added in v0.1.33

func InitScheduler(ctx context.Context) *Scheduler

func (*Scheduler) GetRunner added in v0.1.33

func (s *Scheduler) GetRunner(c context.Context, model *Model, opts api.Options, sessionDuration time.Duration) (chan *runnerRef, chan error)

context must be canceled to decrement ref count and release the runner

func (*Scheduler) Run added in v0.1.33

func (s *Scheduler) Run(ctx context.Context)

Returns immediately, spawns go routines for the scheduler which will shutdown when ctx is done

type Server

type Server struct {
	// contains filtered or unexported fields
}

func (*Server) ChatHandler added in v0.1.33

func (s *Server) ChatHandler(c *gin.Context)

func (*Server) CopyModelHandler added in v0.1.33

func (s *Server) CopyModelHandler(c *gin.Context)

func (*Server) CreateBlobHandler added in v0.1.33

func (s *Server) CreateBlobHandler(c *gin.Context)

func (*Server) CreateModelHandler added in v0.1.33

func (s *Server) CreateModelHandler(c *gin.Context)

func (*Server) DeleteModelHandler added in v0.1.33

func (s *Server) DeleteModelHandler(c *gin.Context)

func (*Server) EmbeddingsHandler added in v0.1.33

func (s *Server) EmbeddingsHandler(c *gin.Context)

func (*Server) GenerateHandler added in v0.1.33

func (s *Server) GenerateHandler(c *gin.Context)

func (*Server) GenerateRoutes

func (s *Server) GenerateRoutes() http.Handler

func (*Server) HeadBlobHandler added in v0.1.33

func (s *Server) HeadBlobHandler(c *gin.Context)

func (*Server) ListModelsHandler added in v0.1.33

func (s *Server) ListModelsHandler(c *gin.Context)

func (*Server) ProcessHandler added in v0.1.38

func (s *Server) ProcessHandler(c *gin.Context)

func (*Server) PullModelHandler added in v0.1.33

func (s *Server) PullModelHandler(c *gin.Context)

func (*Server) PushModelHandler added in v0.1.33

func (s *Server) PushModelHandler(c *gin.Context)

func (*Server) ShowModelHandler added in v0.1.33

func (s *Server) ShowModelHandler(c *gin.Context)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL