diff --git a/server/routes.go b/server/routes.go index 581975b1f..c87dedf2b 100644 --- a/server/routes.go +++ b/server/routes.go @@ -564,7 +564,8 @@ func (s *Server) PullHandler(c *gin.Context) { return } - name := model.ParseName(cmp.Or(req.Model, req.Name)) + reqName := cmp.Or(req.Model, req.Name) + name := model.ParseName(reqName) if !name.IsValid() { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": errtypes.InvalidModelNameErrMsg}) return @@ -593,9 +594,13 @@ func (s *Server) PullHandler(c *gin.Context) { if err := PullModel(ctx, name.DisplayShortest(), regOpts, fn); err != nil { var e ErrRemoteModelNotFound if errors.As(err, &e) { + hint := fmt.Sprintf("Model %q not found - please check the model name is correct and try again", reqName) + if name.Host == DefaultRegistry { + hint = fmt.Sprintf("Model %q not found - search available models at https://ollama.com/search?q=%s", reqName, reqName) + } ch <- api.ErrorResponse{ Err: err.Error(), - Hint: fmt.Sprintf("Model %q not found - please check the model name is correct and try again", name.DisplayShortest()), + Hint: hint, } } else { ch <- gin.H{"error": err.Error()}