mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 22:48:11 +02:00
Télémétrie : une sonde du gabarit de chat, diagnostique et sans risque pour le cache
Les pistes de réutilisation du cache dépendent de deux faits que rien ne mesurait : le gabarit du modèle rend-il encore le raisonnement d'un tour passé, et le rendu d'un tour d'outil reste-t-il un préfixe exact quand un message utilisateur s'y ajoute ? La sonde pose ces deux questions au moteur local par POST /apply-template — un rendu sans état, qui ne prend ni slot ni place dans la file — et n'en tire que des verdicts oui/non/inconnu. Elle ne touche à aucune construction de prompt : Loki ne renvoie toujours aucun reasoning_content au modèle. Toute évolution qui voudrait s'en servir passera sa propre revue, et lira « unknown » comme « ne rien changer ». - moteur local seulement ; preset externe : aucune requête, rien d'affiché - jamais de complétion de repli : avec un slot, elle évincerait le cache - en tâche de fond après une complétion complète du fil principal, /health à 200, au plus une vérification par minute ; authHeader ; 3 s par requête - mêmes outils, chat_template_kwargs et reasoning_effort que la complétion - add_generation_prompt=false demandé au moteur ; un moteur qui l'ignore donne « inconnu » plutôt qu'un faux « instable » - tour d'outil bien formé (identifiant de 9 alphanumériques, résultat lié) - 404, 401, exception du gabarit, délai : inconnu ; 503 relancé - cache par build_info + modèle + empreinte du gabarit + forme de requête - verdict dans /api/perf/summary (champ template) et une ligne [tplprobe] au journal par verdict nouveau Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
09ee04037b
commit
3af481ff05
4 files changed
+965
-1
No files matched your search
@@ -472,6 +472,9 @@ type perfSummary struct {
|
||||
DraftN int `json:"draft_n"`
|
||||
DraftAccepted int `json:"draft_accepted"`
|
||||
DraftRate *float64 `json:"draft_rate,omitempty"`
|
||||
// Template : dernier verdict de la sonde de gabarit (chat_tplprobe.go),
|
||||
// absent tant qu'aucune n'a tourné ou sur un preset externe.
|
||||
Template *tplProbeResult `json:"template,omitempty"`
|
||||
}
|
||||
|
||||
var perfDepthBuckets = []struct {
|
||||
@@ -580,5 +583,9 @@ func handlePerfSummary(w http.ResponseWriter, r *http.Request) {
|
||||
sendJSON(w, http.StatusMethodNotAllowed, map[string]any{"error": "GET seulement"})
|
||||
return
|
||||
}
|
||||
sendJSON(w, http.StatusOK, perfSummarize(perfLog.snapshot()))
|
||||
s := perfSummarize(perfLog.snapshot())
|
||||
if r, ok := tplCapsCurrent(); ok {
|
||||
s.Template = &r
|
||||
}
|
||||
sendJSON(w, http.StatusOK, s)
|
||||
}
|
||||
Reference in new issue
Block a user