mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
Lot 30 : motifs de relance personnalisés tenus par la façade
La surcharge retry_patterns (tableau JSON de regex du Go, chacune en (?mi)) ne garde plus la conversation au Go : la façade la lit au démarrage de sa conversation, comme le Go la compile une fois par processus ; illisible ou vide, les motifs embarqués s'appliquent, une regex illisible est sautée. Les regex restent celles du Go : chat::stream::go_regex réécrit pour le crate regex ce qui n'a pas le même sens — classes Perl et limites de mot ASCII (\w \d \s \b et leurs contraires, dans et hors d'une classe), \Q…\E (refusé dans une classe, comme le Go), [ && -- ~~ dans une classe, octal permis, référence arrière refusée. Parité : parity_retry_test.go compile côté Go une soixantaine de regex (dont celles qu'il refuse) et note leur première correspondance sur onze textes (accents, chiffres non ASCII, espaces insécables, crochets) ; tests/retry.rs rejoue le journal à l'identique et vérifie la lecture de la surcharge au démarrage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
11 files changed
+3633
-11
No files matched your search
@@ -23,9 +23,10 @@
|
||||
//! ([`super::verify`]) ; toute compaction rend l'état des critères au résumé.
|
||||
//!
|
||||
//! Écarts assumés (restent au Go) : PROJ_SNAPSHOT et KEEP_TURN_IMAGES
|
||||
//! (refusés par `/turn/view`), préchauffage, motifs `retry_patterns`
|
||||
//! personnalisés. La télémétrie des complétions (tours, vérifications,
|
||||
//! résumés) rejoint l'anneau du Go (`/internal/v1/perf/record`).
|
||||
//! (refusés par `/turn/view`), préchauffage. La télémétrie des complétions
|
||||
//! (tours, vérifications, résumés) rejoint l'anneau du Go
|
||||
//! (`/internal/v1/perf/record`) ; les motifs `retry_patterns` personnalisés
|
||||
//! sont lus au démarrage ([`retry_patterns`]).
|
||||
|
||||
use std::collections::VecDeque;
|
||||
use std::future::Future;
|
||||
@@ -1053,6 +1054,25 @@ pub async fn go_keeps_chat(store: &crate::store::Store) -> Result<Option<String>
|
||||
}
|
||||
}
|
||||
|
||||
/// `retryPatterns()` : la surcharge `retry_patterns` de la base si elle se
|
||||
/// lit, sinon les motifs embarqués. Lue une fois, au démarrage, comme le Go
|
||||
/// la compile une fois par processus.
|
||||
pub async fn retry_patterns(
|
||||
store: &crate::store::Store,
|
||||
) -> std::sync::Arc<super::stream::RetryPatterns> {
|
||||
let raw = store.get_str(BK_STATE, "retry_patterns").await;
|
||||
match super::stream::RetryPatterns::from_override(&raw) {
|
||||
Some(p) => {
|
||||
eprintln!(
|
||||
"[chat] motifs de relance personnalisés (retry_patterns) : {} motif(s)",
|
||||
p.len()
|
||||
);
|
||||
std::sync::Arc::new(p)
|
||||
}
|
||||
None => super::stream::RetryPatterns::builtin(),
|
||||
}
|
||||
}
|
||||
|
||||
impl ChatShared {
|
||||
/// L'état partagé des tours, autour de l'écrivain des discussions.
|
||||
/// `img_dir` : `LOKI_HOME/chatimg`.
|
||||
|
||||
Reference in new issue
Block a user