mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
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:
1 parent
5dd14c9de5
commit
4a9a5a1712
24 files changed
+2310
-13
No files matched your search
@@ -109,7 +109,8 @@ func modelLoadErrorFrom(log string) string {
|
||||
for i, l := range lines {
|
||||
// Un lancement refusé par LOAD_GUARD (backend_serve_moe.go) s'arrête
|
||||
// avant tout chargement : c'est lui, la dernière tentative.
|
||||
if strings.Contains(l, "loading model") || strings.Contains(l, "load_model") || strings.Contains(l, loadGuardMarker) {
|
||||
if strings.Contains(l, "loading model") || strings.Contains(l, "load_model") || strings.Contains(l, loadGuardMarker) ||
|
||||
strings.Contains(l, strataServeMarker) {
|
||||
start = i
|
||||
}
|
||||
}
|
||||
@@ -117,8 +118,16 @@ func modelLoadErrorFrom(log string) string {
|
||||
for _, l := range lines[start:] {
|
||||
low := strings.ToLower(l)
|
||||
switch {
|
||||
case strings.Contains(low, "model loaded"), strings.Contains(low, "server is listening"):
|
||||
case strings.Contains(low, "model loaded"), strings.Contains(low, "server is listening"),
|
||||
strings.HasPrefix(l, "ready: http://"): // serveur de Strata prêt
|
||||
loaded = true
|
||||
// Serveur de Strata (Python) : une trace = il s'est arrêté, pas « il charge encore ».
|
||||
case strings.Contains(l, "Traceback (most recent call last)"):
|
||||
if reason == "" {
|
||||
reason = "le serveur de Strata s'est arrêté (trace Python dans le journal)"
|
||||
}
|
||||
case strings.Contains(l, "[strata] config"):
|
||||
reason = "configuration de Strata refusée (détail dans le journal) — réinstalle le modèle"
|
||||
case strings.Contains(low, "failed to create mtp context"),
|
||||
strings.Contains(low, "failed to load draft model"),
|
||||
strings.Contains(low, "failed to initialize speculative decoding context"):
|
||||
@@ -435,6 +444,13 @@ func handlePresets(w http.ResponseWriter, r *http.Request) {
|
||||
out = append(out, item)
|
||||
continue
|
||||
}
|
||||
// Strata : réglages dans sa propre fenêtre, pas l'éditeur llama.cpp.
|
||||
if cfg := parseEnv(content); isStrataConfig(cfg) {
|
||||
item["strata"] = true
|
||||
if cfg["STRATA_VISION"] != "0" {
|
||||
item["vision"] = true
|
||||
}
|
||||
}
|
||||
if q := detectQuant(content); q != "" {
|
||||
item["quant"] = q
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user