Moteur Strata : un second moteur, choisi par preset (ENGINE=strata)

Strata (github.com/Niko1221/Strata, MIT) fait tourner Qwen3.8 Flash Next
(MoE 125 B) sur une carte de joueur en répartissant les experts entre VRAM,
RAM et disque. Intégration reprise d'AJEAN (backend_moe.go, « AJEAN MoE
1.0 ») : paquet figé de la release moe-v1.0, vérifié par SHA-256.

- backend_strata.go : détection de la machine, quant conseillé, installation
  en tâche (même suivi que llama.cpp), preset ENGINE=strata, lancement du
  serveur de Strata par `loki serve`, réglages d'un modèle installé
- pré-vol, vision, liste des presets, journal de chargement : Strata reconnu
- proxy OpenAI et relais : Host local pour Strata (il refuse un Host inconnu)
- benchmark et optimiseur refusés sur Strata (protocole propre à llama-server)
- UI : ligne Strata dans Paramètres → Moteur (visible aussi avec le moteur de
  l'image), fenêtre d'installation et de réglages, moteur actif affiché
- image : python3 + python3-venv ; compose : memlock illimité

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-07 09:03:22 +02:00
1 parent 5dd14c9de5
commit 4a9a5a1712
24 files changed
+2310 -13

No files matched your search

+26
View File
@@ -767,6 +767,32 @@ textarea.sctl{min-height:76px;resize:vertical;line-height:1.5}
gris atténué du thème monochrome et devenait illisible en mode sombre. */
.lc-reco{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--text);color:var(--bg);border:1px solid var(--text);border-radius:4px;padding:1px 6px}
.lc-mode-d{font-size:11px;color:var(--dim);margin-top:3px}
/* Strata (10b-strata.js) : liste des qualités, réglages et configuration. */
.slist>.lc-modes#lc-engines{border-top:1px solid var(--border)}
#lc-strata.moe-off{cursor:default}
#lc-strata.moe-off:hover{background:none}
#lc-strata.moe-off .lc-mode-t{color:var(--dim)}
#strata-quants{overflow:hidden}
#strata-quants .lc-mode.moe-sel{background:var(--accent-bg)}
#strata-quants .lc-mode.moe-sel .lc-mode-t{color:var(--accent)}
#strata-quants .lc-mode.moe-off{cursor:default}
#strata-quants .lc-mode.moe-off:hover{background:none}
#strata-quants .lc-mode.moe-off .lc-mode-t{color:var(--dim)}
.moe-details{padding:4px 10px}
.moe-details .moe-kv{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;padding:5px 0}
.moe-details .moe-kv .switch{display:block}
.moe-details .moe-kv:not(:last-child){border-bottom:1px solid var(--border)}
.moe-details .moe-kv span:first-child{color:var(--dim)}
.moe-details .moe-kv span:last-child{text-align:right}
.moe-ctx{display:flex;align-items:center;gap:10px}
.moe-ctx input[type=range]{width:160px;height:16px;margin:0;padding:0;background:transparent;border:none;-webkit-appearance:none;appearance:none;cursor:ew-resize}
.moe-ctx input[type=range]:focus{outline:none}
.moe-ctx input[type=range]::-webkit-slider-runnable-track{height:4px;border:none;border-radius:999px;background:linear-gradient(to right,var(--accent) var(--p,50%),color-mix(in srgb,var(--dim) 25%,transparent) var(--p,50%))}
.moe-ctx input[type=range]::-moz-range-track{height:4px;border:none;border-radius:999px;background:color-mix(in srgb,var(--dim) 25%,transparent)}
.moe-ctx input[type=range]::-moz-range-progress{height:4px;border-radius:999px;background:var(--accent)}
.moe-ctx input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border:none;border-radius:50%;background:var(--accent)}
.moe-ctx input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--accent)}
.moe-ctx span{min-width:62px;text-align:right;font-variant-numeric:tabular-nums}
/* Hauteur réservée : la ligne d'état arrive après l'appel réseau, sans elle
les trois cartes grandissaient d'un cran une fois l'état connu. */
.lc-mode-state{font-size:11px;min-height:16px;margin-top:7px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}