From ef5b036d992fbc358450313545ae1d63a840a6c3 Mon Sep 17 00:00:00 2001 From: nathaninline Date: Wed, 22 Jul 2026 20:17:23 +0200 Subject: [PATCH] backend llama.cpp : choix du moteur PAR MODELE (3 options), la barre laterale n'installe plus que Corrige la confusion : deux endroits ecrivaient la ligne BIN et se battaient (la barre laterale changeait le BIN global + redemarrait, puis selectionner un preset remettait le BIN du preset). Desormais : - la section laterale 'Backend llama.cpp' sert UNIQUEMENT a installer / mettre a jour les moteurs (rapide / optimisee), elle ne change plus le BIN actif - le choix du moteur se fait PAR MODELE, dans l'editeur de preset, avec 3 options claires : Rapide (precompile) / Optimise (compile) / Personnalise (chemin libre ou backend depose dans le dossier backends de jean, detecte) - detection auto de l'option a l'ouverture selon le BIN du preset ; l'astuce indique le dossier ou deposer un binaire custom - /api/llamacpp expose backends_dir ; l'endpoint /use n'est plus utilise par l'UI v0.4.11 --- internal/jean/run.go | 2 +- internal/jean/ui/index.html | 186 +++++++++++++++---------- internal/jean/ui/src/index.tmpl.html | 13 +- internal/jean/ui/src/js/07-models.js | 87 ++++++++---- internal/jean/ui/src/js/10-llamacpp.js | 79 ++++------- internal/jean/ui/src/styles.css | 7 +- internal/jean/web_llamacpp.go | 1 + 7 files changed, 220 insertions(+), 155 deletions(-) diff --git a/internal/jean/run.go b/internal/jean/run.go index a7969b9..1038a6d 100644 --- a/internal/jean/run.go +++ b/internal/jean/run.go @@ -10,7 +10,7 @@ import ( "strings" ) -const Version = "0.4.10" +const Version = "0.4.11" // Main est le vrai main() du binaire (cmd/jean ne fait que l'appeler). func Main() { diff --git a/internal/jean/ui/index.html b/internal/jean/ui/index.html index a79283a..e0ac5e5 100644 --- a/internal/jean/ui/index.html +++ b/internal/jean/ui/index.html @@ -296,7 +296,7 @@ button:disabled{opacity:.5;cursor:not-allowed} .lc-modes.busy{opacity:.5;pointer-events:none} .lc-mode{border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .12s,background .12s} .lc-mode:hover{border-color:var(--accent)} -.lc-mode.active{border-color:var(--accent);background:var(--panel);cursor:default} +.lc-mode.installed{border-color:var(--accent)} .lc-mode-t{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px} .lc-reco{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:1px 6px} .lc-mode-d{font-size:11px;color:var(--dim);margin-top:3px} @@ -305,6 +305,11 @@ button:disabled{opacity:.5;cursor:not-allowed} .lc-mode-active-tag{color:var(--accent);font-weight:600} .lc-update-link{color:var(--dim);text-decoration:underline;cursor:pointer} .lc-update-link:hover{color:var(--accent)} +/* Choix du moteur dans l'éditeur de modèle (3 options : rapide/optimisé/perso) */ +.be-opts{display:flex;flex-direction:column;gap:7px;margin:6px 0 8px} +.be-opt{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer} +.be-opt input{margin:0;flex-shrink:0} +.be-note{font-size:11px;color:var(--dim);margin-left:auto} .lc-logbar{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:6px 0;margin-top:4px} .lc-logbar #lc-log-caret{font-size:9px;transition:transform .12s;display:inline-block} .lc-logbar.open #lc-log-caret{transform:rotate(90deg)} @@ -500,8 +505,17 @@ button:disabled{opacity:.5;cursor:not-allowed}