pub struct ScoreBreakdown {
pub relevance: f64,
pub salience_raw: f64,
pub salience_decayed: f64,
pub temporal: f64,
pub weighted: WeightedContributions,
pub profile_component: f64,
pub entity_posterior_mean: Option<f64>,
}Expand description
Per-component score contributions for a single recall result.
Fields§
§relevance: f64Raw RRF fusion score (before weighting).
salience_raw: f64Raw salience from the note (before decay).
salience_decayed: f64Salience after applying the decay model.
temporal: f64Temporal recency score (half-life decay, independent of note’s own decay_factor).
weighted: WeightedContributionsWeighted contributions summing to the total score.
profile_component: f64ADR-104 §3: multiplicative contribution of serve-time profile-weight
projection relative to configured-default weights for this hit —
score_with_projected_weights / score_with_default_weights. 1.0
when no profile served the request (component 1 never ran) or the
default-weight score is ~0 (div-by-zero guard).
entity_posterior_mean: Option<f64>ADR-104 §3: the serving profile’s per-entity Beta posterior mean for
this hit’s UUID. None when no profile served the request, or the
profile holds no posterior for this UUID beyond the uninformative
prior. As of Stage B (§2), this value is not just reported: it is
the input to the bounded per-entity term
clamp(1 + 0.3 * (entity_posterior_mean - 0.5), 0.85, 1.15) that
multiplies the response’s rank_score — so a value here other than
the neutral case (None, or a mean of exactly 0.5) means this hit’s
rank_score was moved by up to +/-15% relative to the same
candidate under a profile with no posterior for it.
Implementations§
Trait Implementations§
Source§impl Clone for ScoreBreakdown
impl Clone for ScoreBreakdown
Source§fn clone(&self) -> ScoreBreakdown
fn clone(&self) -> ScoreBreakdown
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScoreBreakdown
impl Debug for ScoreBreakdown
Source§impl<'de> Deserialize<'de> for ScoreBreakdown
impl<'de> Deserialize<'de> for ScoreBreakdown
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ScoreBreakdown
impl RefUnwindSafe for ScoreBreakdown
impl Send for ScoreBreakdown
impl Sync for ScoreBreakdown
impl Unpin for ScoreBreakdown
impl UnsafeUnpin for ScoreBreakdown
impl UnwindSafe for ScoreBreakdown
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more