From 911ffbfeaf5b1e6e7cc85a5f4e9e9f10051ee945 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Sun, 4 Oct 2026 14:56:00 +0200 Subject: [PATCH] =?UTF-8?q?Moteur=20:=20corrections=20de=20relecture=20?= =?UTF-8?q?=E2=80=94=20avec=20LOAD=5FGUARD=3Doff,=20l'avis=20ne=20parle=20?= =?UTF-8?q?plus=20de=20refus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'avis rendu quand le refus attend les cartes du moteur (VRAM NVIDIA seule) annonçait « refus seulement si les cartes listées par le moteur le confirment » même avec LOAD_GUARD=off, où aucun refus n'est possible. Il retombe alors sur l'avis ordinaire. - Test : VRAM NVIDIA seule avec LOAD_GUARD=off, et aucun avis qui évoque un refus quand la clé d'échappement est posée. Co-Authored-By: Claude Opus 5.5 --- internal/loki/backend_serve_moe.go | 2 +- internal/loki/backend_serve_moe_test.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/loki/backend_serve_moe.go b/internal/loki/backend_serve_moe.go index fe8a1e9..a7665a1 100644 --- a/internal/loki/backend_serve_moe.go +++ b/internal/loki/backend_serve_moe.go @@ -346,7 +346,7 @@ func loadModeRisk(cfg map[string]string, args []string, si serveSysInfo) (warn, if upTo { what = "jusqu'à " } - if unsure && est*10 > ram*9 { + if unsure && est*10 > ram*9 && !loadGuardOff(cfg) { return fmt.Sprintf("%s : environ %s de poids en RAM (modèle %s, VRAM NVIDIA %s) pour %s — échec probable ; "+ "refus seulement si les cartes listées par le moteur le confirment, lancement sinon ; "+ "--load-mode mmap est plus sûr", mode, gibText(est), gibText(modelMiB), gibText(si.VRAMMiB), gibText(ram)), "" diff --git a/internal/loki/backend_serve_moe_test.go b/internal/loki/backend_serve_moe_test.go index e807e81..1254bba 100644 --- a/internal/loki/backend_serve_moe_test.go +++ b/internal/loki/backend_serve_moe_test.go @@ -145,6 +145,9 @@ func TestLoadModeRisk(t *testing.T) { // seul ne fait jamais refuser. {name: "VRAM NVIDIA seule, cartes du moteur non lues : avertissement, jamais de refus", args: "--load-mode none", si: serveSysInfo{ModelBytes: 82 * gib, VRAMMiB: 16 << 10, RAMMiB: 60 << 10}, warn: true}, + {name: "VRAM NVIDIA seule, LOAD_GUARD=off : l'avis ordinaire", + cfg: map[string]string{"LOAD_GUARD": "off"}, args: "--load-mode none", + si: serveSysInfo{ModelBytes: 82 * gib, VRAMMiB: 16 << 10, RAMMiB: 60 << 10}, warn: true}, {name: "Vulkan, NVIDIA 12 Gio + AMD 16 Gio listées par le moteur : rien (faux refus sur la seule VRAM NVIDIA)", args: "--load-mode none", si: serveSysInfo{ModelBytes: 70 * gib, VRAMMiB: 12 << 10, EngineVRAMMiB: 28 << 10, RAMMiB: 60 << 10}}, {name: "taille inconnue : rien", @@ -162,6 +165,9 @@ func TestLoadModeRisk(t *testing.T) { if refuse != "" && !strings.Contains(refuse, "LOAD_GUARD=off") { t.Errorf("%s : refus sans clé d'échappement : %q", c.name, refuse) } + if loadGuardOff(cfg) && strings.Contains(warn, "refus") { + t.Errorf("%s : refus évoqué avec LOAD_GUARD=off : %q", c.name, warn) + } } }