Просмотр исходного кода

Detect and recover if runner removed

Tmp cleaners can nuke the file out from underneath us.  This detects the missing
runner, and re-initializes the payloads.
Daniel Hiltgen 1 год назад
Родитель
Сommit
58888a74bc
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      llm/server.go

+ 11 - 0
llm/server.go

@@ -250,6 +250,17 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 			server = server + ".exe"
 			server = server + ".exe"
 		}
 		}
 
 
+		// Detect tmp cleaners wiping out the file
+		_, err := os.Stat(server)
+		if errors.Is(err, os.ErrNotExist) {
+			slog.Warn("llama server disappeared, reinitializing payloads", "path", server, "error", err)
+			err = Init()
+			if err != nil {
+				slog.Warn("failed to reinitialize payloads", "error", err)
+				return nil, err
+			}
+		}
+
 		s := &llmServer{
 		s := &llmServer{
 			port:          port,
 			port:          port,
 			cmd:           exec.Command(server, finalParams...),
 			cmd:           exec.Command(server, finalParams...),