Forráskód Böngészése

Fix hanging issue when sending empty content (#2399)

Jeffrey Morgan 1 éve
szülő
commit
a0a199b108
2 módosított fájl, 24 hozzáadás és 21 törlés
  1. 12 9
      server/images.go
  2. 12 12
      server/routes.go

+ 12 - 9
server/images.go

@@ -181,16 +181,19 @@ func (m *Model) ChatPrompts(msgs []api.Message) (*ChatHistory, error) {
 			}
 
 			currentVars.Prompt = msg.Content
-			for i := range msg.Images {
-				id := len(images) + i
-				currentVars.Prompt += fmt.Sprintf(" [img-%d]", id)
-				currentVars.Images = append(currentVars.Images, llm.ImageData{
-					ID:   id,
-					Data: msg.Images[i],
-				})
-			}
 
-			images = append(images, currentVars.Images...)
+			if len(m.ProjectorPaths) > 0 {
+				for i := range msg.Images {
+					id := len(images) + i
+					currentVars.Prompt += fmt.Sprintf(" [img-%d]", id)
+					currentVars.Images = append(currentVars.Images, llm.ImageData{
+						ID:   id,
+						Data: msg.Images[i],
+					})
+				}
+
+				images = append(images, currentVars.Images...)
+			}
 		case "assistant":
 			currentVars.Response = msg.Content
 			prompts = append(prompts, currentVars)

+ 12 - 12
server/routes.go

@@ -1136,18 +1136,6 @@ func ChatHandler(c *gin.Context) {
 		return
 	}
 
-	// an empty request loads the model
-	if len(req.Messages) == 0 {
-		resp := api.ChatResponse{
-			CreatedAt: time.Now().UTC(),
-			Model:     req.Model,
-			Done:      true,
-			Message:   api.Message{Role: "assistant"},
-		}
-		c.JSON(http.StatusOK, resp)
-		return
-	}
-
 	checkpointLoaded := time.Now()
 
 	chat, err := model.ChatPrompts(req.Messages)
@@ -1162,6 +1150,18 @@ func ChatHandler(c *gin.Context) {
 		return
 	}
 
+	// an empty request loads the model
+	if len(prompt) == 0 {
+		resp := api.ChatResponse{
+			CreatedAt: time.Now().UTC(),
+			Model:     req.Model,
+			Done:      true,
+			Message:   api.Message{Role: "assistant"},
+		}
+		c.JSON(http.StatusOK, resp)
+		return
+	}
+
 	slog.Debug("chat handler", "prompt", prompt)
 
 	ch := make(chan any)