mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-20 21:48:47 +02:00
Lot 8 : téléchargements de modèles tenus par la façade (LOKI_DOWNLOADS=rust)
La façade Rust mène les téléchargements de .gguf quand LOKI_DOWNLOADS=rust (expérimental ; le Go reste le défaut) : sonde, lancement, suivi, annulation, avec les mêmes contrats et la même mécanique que le Go (tranches rapatriées en entier, plages d'octets parallèles, reprise, place disque vérifiée sur le total, jeton réservé aux hôtes Hugging Face, refus traduits, .part vidés au démarrage). Côté Go : facade_downloads.go remet ces routes à la façade quand elles arrivent par le tunnel du relais, et le Go ne vide plus les .part qu'elle mène. Parité : journal des fonctions pures tiré du Go (parity_dl_test.go) et rejoué en Rust ; téléchargements de bout en bout contre un faux Hugging Face (tests/downloads.rs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
20 files changed
+2820
-17
No files matched your search
@@ -130,8 +130,9 @@ func newWebMux() *http.ServeMux {
|
||||
// secondes pour un serveur lancé via npx) est payé par le premier message.
|
||||
MCPPrewarm()
|
||||
// Un téléchargement de modèle coupé net (crash, restart du service) laisse un
|
||||
// .part orphelin non reprenable : on nettoie au démarrage.
|
||||
cleanStalePartFiles()
|
||||
// .part orphelin non reprenable : on nettoie au démarrage (sauf quand la
|
||||
// façade tient les téléchargements, facade_downloads.go).
|
||||
cleanStartupPartFiles()
|
||||
// Les fichiers des versions précédentes vivaient dans un pot commun : on les
|
||||
// range dans le dossier de leur discussion (une fois par process).
|
||||
migrateConvFiles()
|
||||
@@ -218,7 +219,9 @@ func newWebMux() *http.ServeMux {
|
||||
mountOAI(mux)
|
||||
// api enregistre une route /api/* protégée par la clé de pilotage (web_auth.go).
|
||||
// withFacadeChat : routes du chat remises à la façade quand elle tient la
|
||||
// conversation (LOKI_CHAT=rust, facade_chat.go) ; sans effet sinon.
|
||||
// conversation (LOKI_CHAT=rust, facade_chat.go), celles des téléchargements
|
||||
// de modèles quand elle les tient (LOKI_DOWNLOADS=rust,
|
||||
// facade_downloads.go) ; sans effet sinon.
|
||||
api := func(path string, h http.HandlerFunc) { mux.HandleFunc(path, requireWebAuth(withFacadeChat(path, h))) }
|
||||
api("/api/ping", handlePing)
|
||||
api("/api/status", handleStatus)
|
||||
|
||||
Reference in new issue
Block a user