mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-24 15:38:12 +02:00
v0.8.1 : le moteur dit enfin pourquoi il ne demarre pas, et les presets repartent propres
- start/restart : preflight (BIN, MODEL, .gguf) et fin du faux « [ok] activating » sur un service qui redemarre en boucle (SubState auto-restart). - MODEL en chemin absolu accepte hors des dossiers declares (lecture seule) ; l'allowlist reste sur la suppression de fichiers. - ajean edit : squelette commente des cles au lieu d'un fichier quasi vide. - install : les prochaines etapes n'oublient plus « ajean llamacpp install ». - Presets : un nouveau preset ne recopie plus la config active (issue #17), seulement BIN/HOST/PORT. - Presets : plus de guillemet interne mange a la relecture (Go et interface), et EXTRA_ARGS decoupe en respectant les guillemets.
This commit is contained in:
1 parent
68d6d2032a
commit
db47c72240
17 files changed
+439
-102
No files matched your search
@@ -101,6 +101,29 @@ func baseName(p string) string {
|
||||
return p
|
||||
}
|
||||
|
||||
// resolveServeModelPath résout MODEL= pour LANCER le moteur. Différence avec
|
||||
// resolveModelPath : un chemin absolu qui pointe sur un .gguf existant est
|
||||
// accepté même hors des dossiers déclarés. L'allowlist protège des opérations
|
||||
// destructrices pilotées depuis l'UI (suppression d'un fichier) ; l'appliquer à
|
||||
// « ouvrir ce modèle en lecture » rendait la config éditée à la main
|
||||
// inutilisable : MODEL=/home/moi/models/x.gguf renvoyait « dossier non
|
||||
// autorisé », le moteur mourait en boucle, et le seul remède connu était
|
||||
// d'aller déclarer le dossier dans l'interface web.
|
||||
func resolveServeModelPath(name string) (string, error) {
|
||||
p, err := resolveModelPath(name)
|
||||
if err == nil {
|
||||
return p, nil
|
||||
}
|
||||
s := strings.TrimSpace(strings.Trim(strings.TrimSpace(name), `"`))
|
||||
if filepath.IsAbs(s) && strings.HasSuffix(strings.ToLower(s), ".gguf") {
|
||||
abs := filepath.Clean(s)
|
||||
if st, e := os.Stat(abs); e == nil && !st.IsDir() {
|
||||
return abs, nil
|
||||
}
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
// resolveModelPath transforme une valeur MODEL= (nom de fichier OU chemin
|
||||
// absolu) en chemin absolu vers un .gguf. Un chemin absolu n'est accepté que
|
||||
// s'il est dans un des dossiers déclarés — sinon l'UI web deviendrait un moyen
|
||||
|
||||
Reference in new issue
Block a user