From e31f76e87496206de87af9c1a06e2e426fbb4361 Mon Sep 17 00:00:00 2001 From: Martin Treml Date: Tue, 23 Jul 2024 12:24:06 +0200 Subject: [PATCH] Puller interface implementation for Ollama provider Part of #283 --- provider/ollama/ollama.go | 5 +++++ provider/provider.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/provider/ollama/ollama.go b/provider/ollama/ollama.go index 103b6df92..84f0aff7e 100644 --- a/provider/ollama/ollama.go +++ b/provider/ollama/ollama.go @@ -119,3 +119,8 @@ func (p *Provider) Load(modelIdentifier string) error { func (p *Provider) Unload(modelIdentifier string) error { return tools.OllamaUnload(p.url, strings.TrimPrefix(modelIdentifier, p.ID()+provider.ProviderModelSeparator)) } + +// Pull downloads the given model. +func (p *Provider) Pull(logger *log.Logger, modelIdentifier string) error { + return tools.OllamaPull(logger, p.binaryPath, p.url, strings.TrimPrefix(modelIdentifier, p.ID()+provider.ProviderModelSeparator)) +} diff --git a/provider/provider.go b/provider/provider.go index dc92ed6c3..06f51373a 100644 --- a/provider/provider.go +++ b/provider/provider.go @@ -65,5 +65,5 @@ type Loader interface { // Puller is a provider that is capable of pulling models. type Puller interface { // Pull downloads the given model. - Pull(logger *log.Logger, modelIdentifier string) error + Pull(logger *log.Logger, modelIdentifier string) (err error) }