diff --git a/api/types.go b/api/types.go index 48744ff39..3169e11f4 100644 --- a/api/types.go +++ b/api/types.go @@ -121,7 +121,6 @@ type Runner struct { VocabOnly bool `json:"vocab_only,omitempty"` UseMMap bool `json:"use_mmap,omitempty"` UseMLock bool `json:"use_mlock,omitempty"` - EmbeddingOnly bool `json:"embedding_only,omitempty"` RopeFrequencyBase float32 `json:"rope_frequency_base,omitempty"` RopeFrequencyScale float32 `json:"rope_frequency_scale,omitempty"` NumThread int `json:"num_thread,omitempty"` @@ -395,7 +394,6 @@ func DefaultOptions() Options { UseMLock: false, UseMMap: true, UseNUMA: false, - EmbeddingOnly: true, }, } } diff --git a/docs/api.md b/docs/api.md index c5aa48250..a3c3a3f4e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -321,7 +321,6 @@ curl http://localhost:11434/api/generate -d '{ "vocab_only": false, "use_mmap": true, "use_mlock": false, - "embedding_only": false, "rope_frequency_base": 1.1, "rope_frequency_scale": 0.8, "num_thread": 8 diff --git a/server/routes.go b/server/routes.go index cd53d1032..281657215 100644 --- a/server/routes.go +++ b/server/routes.go @@ -385,7 +385,7 @@ func GenerateHandler(c *gin.Context) { streamResponse(c, ch) } -func EmbeddingHandler(c *gin.Context) { +func EmbeddingsHandler(c *gin.Context) { loaded.mu.Lock() defer loaded.mu.Unlock() @@ -438,8 +438,9 @@ func EmbeddingHandler(c *gin.Context) { return } - if !loaded.Options.EmbeddingOnly { - c.JSON(http.StatusBadRequest, gin.H{"error": "embedding option must be set to true"}) + // an empty request loads the model + if req.Prompt == "" { + c.JSON(http.StatusOK, api.EmbeddingResponse{Embedding: []float64{}}) return } @@ -948,7 +949,7 @@ func (s *Server) GenerateRoutes() http.Handler { r.POST("/api/pull", PullModelHandler) r.POST("/api/generate", GenerateHandler) r.POST("/api/chat", ChatHandler) - r.POST("/api/embeddings", EmbeddingHandler) + r.POST("/api/embeddings", EmbeddingsHandler) r.POST("/api/create", CreateModelHandler) r.POST("/api/push", PushModelHandler) r.POST("/api/copy", CopyModelHandler)