mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +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
@@ -1869,6 +1869,15 @@ func runChatTools(ctx context.Context, messages []Message, tools []Tool, tempera
|
||||
s.LostAlert = perfAlert(rec, perfLostAlertAt(chatCfg))
|
||||
}
|
||||
cb(StreamEvent{Stats: &s})
|
||||
// Sonde de gabarit (chat_tplprobe.go), en tâche de fond et après coup :
|
||||
// la complétion est déjà lue, la sonde ne retarde aucun jeton. Fil
|
||||
// principal seulement, sur une requête de forme normale (pas une
|
||||
// relance outils coupés ou neutralisés), pour reproduire exactement
|
||||
// les outils et chat_template_kwargs d'un vrai tour. Rien n'en revient
|
||||
// dans la requête suivante.
|
||||
if !ep.External && ptag.kind == perfMain && !disableTools && !toolChoiceNone {
|
||||
tplProbeKick(tools, reasoningKwargs, reasoningEffort)
|
||||
}
|
||||
if !ep.External {
|
||||
peakGen = max(peakGen, stats.GenTokens)
|
||||
if lastEst > 0 && stats.PromptTokensTotal > 0 {
|
||||
|
||||
Reference in new issue
Block a user