mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 06:28:11 +02:00
Lot 25 : Strata tenu par la façade (LOKI_STRATA=rust)
Port de backend_strata.go (rust/loki-rs/src/strata) : la machine (cartes par nvidia-smi, Python 3.10+ et venv, RAM totale et disponible, RAM du moteur Strata en marche, place libre), ce qui y tient et la recommandation, la configuration de lancement en clair des modèles installés (placement des experts drop/ram/arena/disk, carte d'aide, réglages du preset), les réglages d'un modèle installé et l'installation (job des moteurs : paquet figé vérifié par SHA-256, installeur lancé et journalisé comme le sinkWriter du Go, preset écrit puis activé par le Go). Tenu seulement avec LOKI_BACKENDS=rust ; le lancement (loki serve) reste au Go, qui relaie les routes du tunnel. Correction du Go : /api/strata/settings décidait « en service » après avoir écrit les nouveaux réglages, donc jamais pour un réglage changé ; décidé désormais avant l'écriture, comme SavePresetApplying. Le port suit. Parité : parity_strata_test.go (crochets de test : release, meminfo, place libre, action de service) tire du Go un journal rejoué par tests/strata.rs ; les tests du Go portés dans strata/tests.rs ; TestFacadeStrata côté Go. Mutations : 71 tuées sur 71. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
22 files changed
+9079
-19
No files matched your search
@@ -174,6 +174,12 @@ fn serve() -> ExitCode {
|
||||
if held_by_facade("LOKI_ENGINE_IMAGE") && !backends_rust {
|
||||
eprintln!("[loki-rs] moteur de l'image tenu par le Go (LOKI_BACKENDS=rust requis)");
|
||||
}
|
||||
// LOKI_STRATA=rust : l'écran de Strata, ses réglages et son
|
||||
// installation (un job des moteurs : avec les backends seulement).
|
||||
let strata_rust = held_by_facade("LOKI_STRATA") && backends_rust;
|
||||
if held_by_facade("LOKI_STRATA") && !backends_rust {
|
||||
eprintln!("[loki-rs] Strata tenu par le Go (LOKI_BACKENDS=rust requis)");
|
||||
}
|
||||
let engine_rust = held_by_facade("LOKI_ENGINE")
|
||||
&& match loki_rs::enginectl::usable(
|
||||
std::env::var("LOKI_CONTAINER").ok().as_deref(),
|
||||
@@ -207,6 +213,7 @@ fn serve() -> ExitCode {
|
||||
("LOKI_UPDATE", update_rust),
|
||||
("LOKI_BACKENDS", backends_rust),
|
||||
("LOKI_ENGINE_IMAGE", engineimg_rust),
|
||||
("LOKI_STRATA", strata_rust),
|
||||
];
|
||||
for (var, on) in held {
|
||||
if on {
|
||||
@@ -332,6 +339,12 @@ fn serve() -> ExitCode {
|
||||
],
|
||||
))
|
||||
});
|
||||
let strata = strata_rust.then(|| {
|
||||
std::sync::Arc::new(loki_rs::strata::api::Strata::new(
|
||||
engine_paths.home.clone(),
|
||||
loki_rs::backends::probe::Probe::system(),
|
||||
))
|
||||
});
|
||||
let cfg = proxy::Config {
|
||||
backend,
|
||||
internal_token: token,
|
||||
@@ -352,6 +365,7 @@ fn serve() -> ExitCode {
|
||||
update: update_rust,
|
||||
backends,
|
||||
engineimg,
|
||||
strata,
|
||||
mcp: mcp_rust.then(|| std::sync::Arc::new(loki_rs::mcp::Mcp::new(mem_home))),
|
||||
};
|
||||
let res = proxy::serve(listener, cfg, shutdown_signal()).await;
|
||||
|
||||
Reference in new issue
Block a user