From 889c5b1a753f81f799764086a0454d8f06bf3b56 Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Wed, 1 May 2024 15:56:59 -0700 Subject: [PATCH] ... --- client/registry/registry.go | 1 + server/routes.go | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/registry/registry.go b/client/registry/registry.go index 957583f8..cd15bda5 100644 --- a/client/registry/registry.go +++ b/client/registry/registry.go @@ -222,6 +222,7 @@ func (nopSeeker) Seek(int64, int) (int64, error) { } func parseNameFill(name, fill string) model.Name { + fill = cmp.Or(fill, "bllamo.com/library/_:latest") f := model.ParseNameBare(fill) if !f.IsFullyQualified() { panic(fmt.Errorf("invalid fill: %q", fill)) diff --git a/server/routes.go b/server/routes.go index db0a9e93..f423c50b 100644 --- a/server/routes.go +++ b/server/routes.go @@ -1,6 +1,7 @@ package server import ( + "cmp" "context" "encoding/json" "errors" @@ -26,6 +27,7 @@ import ( "golang.org/x/exp/slices" "github.com/ollama/ollama/api" + "github.com/ollama/ollama/client/ollama" "github.com/ollama/ollama/client/registry" "github.com/ollama/ollama/gpu" "github.com/ollama/ollama/llm" @@ -35,11 +37,20 @@ import ( "github.com/ollama/ollama/version" ) +// envs +var ( + envRegistryBaseURL = cmp.Or(os.Getenv("OLLAMA_REGISTRY_BASE_URL"), "https://bllamo.com") +) + +func init() { + ollama.I_Acknowledge_This_API_Is_Unstable = true +} + var experiments = sync.OnceValue(func() []string { - return strings.Split(os.Getenv("OLLAMA_EXPERIMENT"), ",") + return strings.Split(strings.ToLower(os.Getenv("OLLAMA_EXPERIMENT")), ",") }) -func useExperiemntal(flag string) bool { +func useExperiment(flag string) bool { return slices.Contains(experiments(), flag) } @@ -454,9 +465,9 @@ func (s *Server) PullModelHandler(c *gin.Context) { return } - if useExperiemntal("pull") { + if useExperiment("pull") { rc := ®istry.Client{ - BaseURL: os.Getenv("OLLAMA_REGISTRY_BASE_URL"), + BaseURL: envRegistryBaseURL, } modelsDir, err := modelsDir() if err != nil { @@ -464,6 +475,7 @@ func (s *Server) PullModelHandler(c *gin.Context) { return } cache := &cache{dir: modelsDir} + println("DIR: ", modelsDir) // TODO(bmizerany): progress updates if err := rc.Pull(c.Request.Context(), cache, model); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})